1

我必须制作一个应用程序,我必须在弹出窗口中显示名称列表。

我已经使用数组列表从数据库中获取值,但我不能将它放入数组适配器中。

这是我的代码:

public class Calculator_new_Pop extends Dialog implements View.OnClickListener{ 

... // rest of the code
ArrayList<String> wallAreas=new ArrayList<String>();

wallAreas=GenericDAO.getWallAreas(room_id);//to fetch the values from databases


ArrayAdapter<String> new_adapter = new ArrayAdapter<String>(Calculator_new_Pop.this,android.R.layout.simple_list_item_1,wallAreas);
                 _ltvw.setAdapter(new_adapter);

... // rest of the code
}

错误是

“构造函数 ArrayAdapter(Calculator_new_Pop, int, ArrayList) 未定义”

谁能帮我吗?

4

3 回答 3

0

使用活动上下文

ArrayAdapter<String> new_adapter = new ArrayAdapter<String>(ActivityName.this,android.R.layout.simple_list_item_1,wallAreas);

您可以将活动上下文传递给构造函数Calculator_new_Pop并使用相同的而不是Calculator_new_Pop.this

编辑

 Context mContext; 
 public Calculator_new_Pop(Context context)
 {
      mContext = context;
 } 

然后

   ArrayAdapter<String> new_adapter = new ArrayAdapter<String>(mContext,android.R.layout.simple_list_item_1,wallAreas); 

看看 ArrayAdapter 的构造函数。

http://developer.android.com/reference/android/widget/ArrayAdapter.html

于 2013-09-12T05:38:47.750 回答
0

参考链接 链接

ArrayAdapter 需要一个上下文作为参数,您提供的不是 Context 类型的 Dialog 实例,这就是显示错误的原因。而不是 Dialog 实例获取活动上下文。

您可以在对话框的构造函数中传递活动上下文,从而在 ArrayAdapter 中提供该上下文。

public class Calculator_new_Pop extends Dialog implements View.OnClickListener{ 
Context mContext =null;
public Calculator_new_Pop(Context c ){
this.mContext = c;}

.............
.............
.............

ArrayList<String> wallAreas=new ArrayList<String>();

wallAreas=GenericDAO.getWallAreas(room_id);//to fetch the values from databases


ArrayAdapter<String> new_adapter = new ArrayAdapter<String>(mContext,android.R.layout.simple_list_item_1,wallAreas);
                 _ltvw.setAdapter(new_adapter);

.......
}

从活动实例化对话框时,传递this.

于 2013-09-12T05:48:55.867 回答
0

我在“mContext”中得到'null'所以我尝试了这个..

public Calculator_new_Pop(Activity parent) {
        // TODO Auto-generated constructor stub
        super(parent);

        this._act = parent;
//      
    }


_ltvw.setAdapter(new ArrayAdapter<String>(_act,android.R.layout.simple_list_item_multiple_choice,data));

有效..

于 2013-09-12T06:23:29.467 回答