Android字段无法解析或不是字段

Android字段无法解析或不是字段,android,Android,由于某种原因,当我试图为按钮buttonadItem定义onclick侦听器,然后尝试添加使用EditTextEditTextAddItem的调用方法时,我得到一个错误 Description Resource Path Location Type EditTextAddItem cannot be resolved or is not a field //完整代码在这里 public class MainActivity extends ActionBarActiv

由于某种原因,当我试图为按钮
buttonadItem
定义onclick侦听器,然后尝试添加使用EditText
EditTextAddItem
的调用方法时,我得到一个错误

Description Resource    Path    Location    Type
EditTextAddItem cannot be resolved or is not a field
//完整代码在这里

    public class MainActivity extends ActionBarActivity {

    //variables
        EditText EditTextAddItem;
        Button ButtonAddItem;
        ListView ListItems;

    //array to store items
        ArrayList<String> ArrItems;
        ArrayAdapter<String> ArrAdapt;

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

    //define variables
            EditTextAddItem = (EditText) findViewById(R.id.editTextAddItem);
            ButtonAddItem = (Button) findViewById(R.id.buttonAddItem);
            ListItems = (ListView) findViewById(R.id.listView);

    //set arraylist with listview
            ArrItems = new ArrayList<String>();
            ArrAdapt = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, ArrItems);
            ListItems.setAdapter(ArrAdapt);

    //onclick listener
            ButtonAddItem.setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    addItem(this.EditTextAddItem.getText().toString());

                }
            });

//AddItems to listview method
    private void addItem(String item){
        if(item.length() > 0){
            this.ArrItems.add(item);
            this.ArrAdapt.notifyDataSetChanged();
            this.EditTextAddItem.setText("");
        }
}


        }
公共类MainActivity扩展了ActionBarActivity{
//变数
编辑文本编辑文本添加项;
按钮按钮;
列表视图列表项;
//用于存储项目的数组
ArrayList项目;
ArrayAdapter ArrAdapt;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//定义变量
EditTextAddItem=(EditText)findViewById(R.id.EditTextAddItem);
ButtonAddItem=(Button)findViewById(R.id.ButtonAddItem);
ListItems=(ListView)findViewById(R.id.ListView);
//使用listview设置arraylist
ArrItems=新的ArrayList();
ArrAdapt=新的ArrayAdapter(这是android.R.layout.simple\u list\u item\u 1,ArrItems);
setAdapter(ArrAdapt);
//onclick侦听器
ButtonAddItem.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
//TODO自动生成的方法存根
addItem(this.EditTextAddItem.getText().toString());
}
});
//listview方法的附加项
专用void附加项(字符串项){
如果(item.length()>0){
本.项目.添加(项目);
this.ArrAdapt.notifyDataSetChanged();
此.EditTextAddItem.setText(“”);
}
}
}

您的问题是试图找到OnClickListener的成员
EditTextAddItem
。您需要告诉它在父类中查找,方法是在
this
前面加上父类的名称:

@Override
public void onClick(View v) {
     // TODO Auto-generated method stub
     addItem(MainActivity.this.EditTextAddItem.getText().toString());

}

这将无法编译,更不用说运行了。您是否希望EditTextAddItem作为EditText类型变量的名称?您需要将其声明为EditText EditTextAddItem=(EditText)findViewById(R.id.EditTextAddItem);此外,Java中习惯将变量命名为以小写字符开头的驼峰大小写。此外,您还可以(并且应该)删除
//TODO自动生成的方法存根
。因为您的方法现在有一个主体。这只是提醒您填充主体。