如何从BaseAdapter Android获取活动变量
作者:互联网
我在MainActivity上有一个变量bill_id.
然后在MainActivity上,我也有列表视图类别,将onItemClick放在CategoryListAdapter上.
在这里,当我单击类别时,我想重新加载活动(这是新的意图)并传递变量,我想传递category_id和bill_id(来自MainActivity)
我如何从BaseAdapter获取bill_id值?
这是我的摘录:
final int category_id = listData.get(position).getID();
final String category_name = listData.get(position).get_name();
holder.btnCategory.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v){
Log.d(TAG, "click category:"+category_id);
Log.d(TAG, "category selected:"+category_name);
// get cat id, reload with its id
db = new DatabaseHelper(aContext);
// bring variable id, to POS interface
Intent intent = new Intent(aContext, MainActivity.class);
intent.putExtra("category_id", category_id);
v.getContext().startActivity(intent);
}
});
解决方法:
很简单.使用适配器的构造函数将值从“活动”传递到适配器.这就是构造函数的用途.
就像在您的活动中一样
MyAdapter myAdapter = new MyAdapter(variable1, variable2);
现在在您的适配器中
private int variable1, variable2;
// Constructor
public MyAdapter(int var1, int var2){
this.variable1 = var1;
this.variable2 = var2;
}
现在,您可以轻松地在点击侦听器中使用这些变量,并将它们传递给新的意图.
您也可以在适配器中对这些变量使用设置器,例如,
public void setVariable1(int value){
this.variable1 = value;
}
public void setVariable2(int value){
this.variable2 = value;
}
从您的活动中,在需要时执行类似的操作,
myAdapter.setVariable1(10);
因此,这些是您从适配器内部的活动中访问变量的方法.
标签:listview,baseadapter,android 来源: https://codeday.me/bug/20191026/1935035.html