6

私は自分でいくつかの Android アプリ開発の学習に取り組んでおり、簡単な ToDo リスト アプリケーションの作成方法に関するビデオ チュートリアルに従っています。しかし、私はコンパイルエラーに遭遇し、私が持っている限られた知識から、すべてが順調に進んでいるようです. 以下は、メイン クラスとレイアウトの両方です。

Main.java: http://pastebin.com/vfuANx0p

package com.example.exampletodo;

import android.R;
import android.os.Bundle;
import android.app.Activity;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnKeyListener;
import android.widget.EditText;
import android.widget.Button;
import android.widget.ListView;
import java.util.ArrayList;
import android.widget.ArrayAdapter;

public class Main extends Activity implements OnClickListener, OnKeyListener {

    EditText txtItem;
    Button btnAdd;
    ListView listItems;

    ArrayList<String> toDoItems;
    ArrayAdapter<String> aa;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        txtItem = (EditText)findViewById(R.id.txtItem);
        btnAdd = (Button)findViewById(R.id.btnAdd);
        listItems = (ListView)findViewById(R.id.listItems);

        btnAdd.setOnClickListener(this);
        txtItem.setOnKeyListener(this);

        toDoItems = new ArrayList<String>();
        aa = new ArrayAdapter<String>(this, R.layout.simple_list_item_1, toDoItems);
        listItems.setAdapter(aa);
    }

    private void addItem(String item){
        if(item.length() > 0){
            this.toDoItems.add(item);
            this.aa.notifyDataSetChanged();
            this.txtItem.setText("");
        }
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    public void onClick(View v){
        if(v == this.btnAdd){
            this.addItem(this.txtItem.getText().toString());
        }
    }

    public boolean onKey(View v, int keyCode, KeyEvent event){
        if(event.getAction() == KeyEvent.ACTION_DOWN && keyCode == KeyEvent.KEYCODE_DPAD_CENTER){
            this.addItem(this.txtItem.getText().toString());
        }
        return false;
    }

}

main.xml: http://pastebin.com/WcWg692v

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:paddingLeft="@dimen/activity_horizontal_margin"
   android:paddingRight="@dimen/activity_horizontal_margin"
   android:paddingTop="@dimen/activity_vertical_margin"
   android:paddingBottom="@dimen/activity_vertical_margin"
   tools:context=".Main">

    <EditText
           android:layout_width="fill_parent"
           android:layout_height="wrap_content"
           android:id="@+id/txtItem" android:layout_alignParentTop="true"
           android:layout_alignParentRight="true" android:layout_alignParentLeft="true" android:focusable="true"/>
    <Button
           android:layout_width="fill_parent"
           android:layout_height="wrap_content"
           android:text="@string/add"
           android:id="@+id/btnAdd" android:layout_below="@+id/txtItem" android:layout_alignRight="@+id/txtItem"
           android:layout_alignLeft="@+id/txtItem"/>
    <ListView
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:id="@+id/listItems"
           android:layout_alignParentRight="true" android:layout_alignParentLeft="true"
           android:layout_alignParentBottom="true" android:layout_below="@+id/btnAdd"/>
</RelativeLayout>

エラーは次のとおりです。

 /home/rohan/ExampleToDo/ExampleToDo/src/main/java/com/example/exampletodo/Main.java
 Gradle: cannot find symbol variable main Gradle: cannot find symbol
 variable txtItem Gradle: cannot find symbol variable btnAdd Gradle:
 cannot find symbol variable listItems Gradle: cannot find symbol
 variable main

喜んで手伝ってくれる人に感謝します!

4

1 に答える 1

12

間違った R ファイルをインポートし、android.R をインポートし、package.R をインポートする必要があります。

com.example.exampletodo.R

編集:クリーンとビルドが必要な場合があることを忘れないでください。したがって、自動 R 作成に頼るよりも、自分で行う方がよいでしょう。また、R ファイルに ID が含まれているかどうかをいつでも確認できます。

パート2:

これを変える

ArrayAdapter<String>(this, R.layout.simple_list_item_1, toDoItems);

の中へ

ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, toDoItems);

simple_list_item_1 はあなたの R ではなく android.R の一部であるため

これが役に立ち、あなたの仕事を楽しんでくれることを願っています。

于 2013-05-20T22:41:55.280 に答える