我正在创建一个应用程序,它根据数据库中的条目数动态创建复选框。
代码运行正常。并创建多个复选框。但是我想动态地将onClick Action Listener添加到CheckBoxes。怎么做。
我在这里发布代码:
SQLiteDatabase db = this.getReadableDatabase();
String countQuery = "SELECT * FROM " + TABLE_NAME;
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery(countQuery, null);
int maxCount = cursor.getCount();
CheckBox[] check = new CheckBox[maxCount];
cursor.moveToFirst();
int checkboxid = 100;
int alarm_id;
for(int i=0;i<maxCount;i++)
{
check[i]= new CheckBox(this);
setCheckBoxId(i+maxCount);
}
现在如何将actionlistener添加到这些动态创建的CheckBox中。
答案 0 :(得分:2)
以下check[i]= new CheckBox(this);
添加此内容,您的CheckBoxes将具有全部clicklistener
check[i].setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// your code to be executed on click :)
}
});
答案 1 :(得分:2)
check[i]= new CheckBox(this);
check[i].setOnClickListener(this);
您需要检查复选框ID或在创建时为文本boz设置标记。
check[i].setTag(someIdentifier);
然后使用方法
@Override
public void onClick(View v) {
if (v.getTag.equals(someIdentifier)){
//do stuff here
}
}