我尝试制作一个使用 viewFlipper 来翻转一些文本的应用程序。内容从光标填充,视图以编程方式添加。
每个视图都基于相同的 xml 布局文件,每个视图包含 2 个按钮。
当我按下一个按钮时,我会触发 onClick 事件,但是如何将自定义变量传递给 onclick 事件?
我有一个 var id女巫,我需要对每个视图都不同,并且我需要在按下按钮时获得这个值。
这是我的代码:
Cursor cur = db.rawQuery(
"SELECT * FROM items WHERE id_cat = " + id_cat + "", null);
TextView t = new TextView(this);
int total_items = cur.getCount();
if (cur.moveToFirst()) {
do {
String data = cur.getString(cur.getColumnIndex("item_text"));
String item_id= cur.getString(cur.getColumnIndex("_id"));
int current = cur.getPosition()+1;
// load xml template
LayoutInflater inflater = LayoutInflater.from(this);
View v = inflater.inflate(R.layout.item_flip, null, false);
ToggleButton btnf=(ToggleButton)v.findViewById(R.id.favorite);
btnf.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
switch(v.getId()){
case R.id.favorit:
// switch favorite
SQLiteDatabase db = dbAdapter.openDataBase();
if(status==1) {
//// HERE I NEED THE ITEM_ID DISTINCT FOR EACH VIEW
db.execSQL("UPDATE items SET favorite = 0 WHERE items._id = " + item_id);
} else {
db.execSQL("UPDATE items SET favorite = 1 WHERE items._id = " + item_id);
}
System.out.println("Switch");
db.close();
break;
}
}
});
vf.addView(v);
} while (cur.moveToNext());
该按钮工作正常,但未传递项目 ID。
如果我的 viewflipper 中有 5 个项目,item_id 将变为 1,然后是 2,然后是 3,然后......然后是 5,并且我按下 item_id 的按钮中没有任何一个将是最后一个视图的 id。
如果您有任何解决方案,请提前致谢。