viewFlipperを使用してテキストを反転するアプリケーションを作成しようとしています。コンテンツはカーソルから入力され、ビューはプログラムで追加されます。
各ビューは同じxmlレイアウトファイルに基づいており、各ビューには2つのボタンが含まれています。
1つのボタンを押すと、onClickイベントが発生しますが、カスタム変数をonclickイベントに渡すにはどうすればよいですか?
私は変数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は渡されません。
ビューフリッパーに5つのアイテムがある場合、item_idは1、2、3、....次に5になり、item_idを押したボタンのマザーウィッチは最後のビューのIDになりません。
解決策があれば事前に感謝します。