构建ArrayAdapter的错误(Android,noob)

时间:2010-11-14 04:47:42

标签: android

我在一个名为Pdj的Activity中有一个类。 。 。

        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);
       . . . 

最后一行生成构建错误“构造函数ArrayAdapter(Pdj.ButtonListener,int,ArrayList)未定义”

StackOverflow上的其他人报告了这个问题并被告知要尝试。 。 。

                ArrayAdapter<String> aa = new ArrayAdapter<String>(this.getContext(),
                                          android.R.layout.simple_list_item_1,
                                          todoArrayList);

...但是只产生“方法getContext()未定义类型Pdj.ButtonListener”

提前致谢!!

2 个答案:

答案 0 :(得分:3)

请在您的代码段中看到以“##”开头的评论。

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);
       . . . 

尝试更改您的代码,如下面的格式:

ArrayAdapter<String> aa = new ArrayAdapter<String>(YourActivity.this,
                                              android.R.layout.simple_list_item_1,
                                              todoArrayList);

答案 1 :(得分:0)

尝试调用TheActivityClassName.this.getContext()

时,无论是哪种活动类