ArrayAdapter(Android、noob)的生成错误

ArrayAdapter(Android、noob)的生成错误,android,Android,我在一个名为Pdj的活动中有一个类 private class ButtonListener implements View.OnClickListener { public void onClick(View v) { ListView myListView = (ListView)findViewById(R.id.pdjListView); EditText screen2EditText = (EditTe

我在一个名为Pdj的活动中有一个类

        private class ButtonListener implements View.OnClickListener {

        public void onClick(View v) {
            ListView myListView = (ListView)findViewById(R.id.pdjListView);
            EditText screen2EditText = (EditText)findViewById(R.id.pdjEditText);        
            ArrayList<String> todoArrayList = new ArrayList<String>();                
            // array adapter to bind the array to the list view
            ArrayAdapter<String> aa = new ArrayAdapter<String>(this,
                                          android.R.layout.simple_list_item_1,
                                          todoArrayList);
       . . . 
私有类ButtonListener实现View.OnClickListener{
公共void onClick(视图v){
ListView myListView=(ListView)findViewById(R.id.pdjListView);
EditText screen2EditText=(EditText)findViewById(R.id.pdjEditText);
ArrayList ToDoaryList=新建ArrayList();
//用于将阵列绑定到列表视图的阵列适配器
ArrayAdapter aa=新的ArrayAdapter(此,
android.R.layout.simple\u list\u item\u 1,
TODOARYLIST);
. . . 
最后一行生成生成生成错误“构造函数ArrayAdapter(Pdj.ButtonListener,int,ArrayList)未定义”

StackOverflow上的其他人报告了此问题,并要求尝试

                ArrayAdapter<String> aa = new ArrayAdapter<String>(this.getContext(),
                                          android.R.layout.simple_list_item_1,
                                          todoArrayList);
ArrayAdapter aa=新的ArrayAdapter(this.getContext(),
android.R.layout.simple\u list\u item\u 1,
TODOARYLIST);
…但这只会产生“类型Pdj.ButtonListener的方法getContext()未定义”


提前感谢!!

无论这是什么活动类,请尝试调用
活动类名。this.getContext()

无论这是什么活动类,请尝试调用
活动类名。this.getContext()
请查看代码段中以“##”开头的注释

private class ButtonListener implements View.OnClickListener {

        public void onClick(View v) {
            ListView myListView = (ListView)findViewById(R.id.pdjListView);
            EditText screen2EditText = (EditText)findViewById(R.id.pdjEditText);        
            ArrayList<String> todoArrayList = new ArrayList<String>();                
            // array adapter to bind the array to the list view

            // ## "this" refers to class ButtonListener, obviously, it's not a context
            // ## so the compile error raised.
            ArrayAdapter<String> aa = new ArrayAdapter<String>(this,
                                          android.R.layout.simple_list_item_1,
                                          todoArrayList);
       . . . 
私有类ButtonListener实现View.OnClickListener{
公共void onClick(视图v){
ListView myListView=(ListView)findViewById(R.id.pdjListView);
EditText screen2EditText=(EditText)findViewById(R.id.pdjEditText);
ArrayList ToDoaryList=新建ArrayList();
//用于将阵列绑定到列表视图的阵列适配器
//###“this”指的是类ButtonListener,显然,它不是上下文
//##因此出现了编译错误。
ArrayAdapter aa=新的ArrayAdapter(此,
android.R.layout.simple\u list\u item\u 1,
TODOARYLIST);
. . . 
尝试按以下格式更改代码:

ArrayAdapter<String> aa = new ArrayAdapter<String>(YourActivity.this,
                                              android.R.layout.simple_list_item_1,
                                              todoArrayList);
ArrayAdapter aa=新的ArrayAdapter(YourActivity.this、,
android.R.layout.simple\u list\u item\u 1,
TODOARYLIST);

请查看代码片段中以“##”开头的注释

private class ButtonListener implements View.OnClickListener {

        public void onClick(View v) {
            ListView myListView = (ListView)findViewById(R.id.pdjListView);
            EditText screen2EditText = (EditText)findViewById(R.id.pdjEditText);        
            ArrayList<String> todoArrayList = new ArrayList<String>();                
            // array adapter to bind the array to the list view

            // ## "this" refers to class ButtonListener, obviously, it's not a context
            // ## so the compile error raised.
            ArrayAdapter<String> aa = new ArrayAdapter<String>(this,
                                          android.R.layout.simple_list_item_1,
                                          todoArrayList);
       . . . 
私有类ButtonListener实现View.OnClickListener{
公共void onClick(视图v){
ListView myListView=(ListView)findViewById(R.id.pdjListView);
EditText screen2EditText=(EditText)findViewById(R.id.pdjEditText);
ArrayList ToDoaryList=新建ArrayList();
//用于将阵列绑定到列表视图的阵列适配器
//###“this”指的是类ButtonListener,显然,它不是上下文
//##因此出现了编译错误。
ArrayAdapter aa=新的ArrayAdapter(此,
android.R.layout.simple\u list\u item\u 1,
TODOARYLIST);
. . . 
尝试按以下格式更改代码:

ArrayAdapter<String> aa = new ArrayAdapter<String>(YourActivity.this,
                                              android.R.layout.simple_list_item_1,
                                              todoArrayList);
ArrayAdapter aa=新的ArrayAdapter(YourActivity.this、,
android.R.layout.simple\u list\u item\u 1,
TODOARYLIST);

谢谢!作为一个Java/Android noob,我显然不了解上下文。既然ButtonListener是在我的Activity类中定义和运行的,为什么它不从封闭类中获取上下文?…不仅如此,修复的方法是说“Pdj.this”。但在错误消息“构造函数ArrayAdapter”中(Pdj.ButtonListener…”这意味着编译器已经识别出当前类是Pdj(我的活动类)的一部分.所以,即使我的基本问题得到了回答,我还是有点困惑。Thanx你的建议非常有用谢谢!作为Java/Android noob,显然有些关于上下文的东西我没有得到。既然ButtonListener是在我的Activity类中定义和运行的,为什么它没有从封闭类中获得上下文?…不仅如此,还有修复方法是说“Pdj.this”。但在错误消息“构造函数ArrayAdapter(Pdj.ButtonListener…”中,这意味着编译器已经识别出当前类是Pdj(我的活动类)的一部分。因此,即使回答了我的基本问题,我仍然有点困惑。Thanx你的建议非常有用