我必须创建一个应用程序,我必须在弹出窗口中显示名称列表。
我使用array-list从数据库中获取值,但是我不能把它放在数组适配器中。
这是我的代码:
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)未定义”
任何人都可以帮助我吗?
答案 0 :(得分: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
答案 1 :(得分:0)
请参阅链接 link
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
。
答案 2 :(得分: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));
它有效..