我在bill_id
上有一个变量MainActivity.
然后在MainActivity
上,我还有list view
类别,我将onItemClick
放在CategoryListAdapter.
上
在这里,当我点击我要重新加载活动的类别new intent
并传递变量时,我想传递category_id
和bill_id
(来自MainActivity
})
如何从bill_id
获得BaseAdapter
值?
这里是我的代码:
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);
}
});
答案 0 :(得分:4)
很简单。使用适配器的构造函数将值从Activity传递到适配器。这就是构造函数的用途。
与您的活动一样,
MyAdapter myAdapter = new MyAdapter(variable1, variable2);
现在在你的适配器中,
private int variable1, variable2;
// Constructor
public MyAdapter(int var1, int var2){
this.variable1 = var1;
this.variable2 = var2;
}
现在,您可以在点击侦听器中轻松使用这些变量,并将它们传递给新意图。
你也可以在适配器中使用这些变量的setter,如
public void setVariable1(int value){
this.variable1 = value;
}
public void setVariable2(int value){
this.variable2 = value;
}
根据您的活动,在需要时执行此类操作,
myAdapter.setVariable1(10);
因此,这些是您从适配器内的活动访问变量的方法。