选中CheckBox时如何获取ListView ID?

时间:2016-06-08 18:42:07

标签: java android listview android-checkbox

我目前有一个自定义ListView。 ListView中的每个项目都包含一个ImageView,两个TextView和一个CheckBox。下面是列表的截图。

Screenhot

当用户点击下面剪切的CheckBox时,我会捕获,但是,我需要检查项目的_id。

// Get the CheckBox view
CheckBox routine_quick = (CheckBox) view.findViewById(R.id.checkBox_quick);

// Set checked value depending on the database results
if (cursor.getInt(cursor.getColumnIndexOrThrow("quick")) == 1) {
    routine_quick.setChecked(true);
} else {
    routine_quick.setChecked(false);
}

// Create onClickListener
routine_quick.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        if (((CheckBox) v).isChecked()) {
            // ADD QUICK TO DATABASE

        } else {
            // REMOVE QUICK FROM DATABASE
        }
    }
});

但是,使用这种方法,我得到的唯一参数是"查看v"。

我尝试过搜索,但我只找到了在单击ListView时如何设置复选框以进行检查的示例。

单击CheckBox时如何获取_id?任何帮助表示赞赏。谢谢!

1 个答案:

答案 0 :(得分:0)

@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

int id = buttonView.getId();

if(isChecked){
   switch(id){
      case R.id.sprint:
      //add to database
      ...
   }
}
else{
  switch(id){
      case R.id.sprint:
      //remove from database
      ...
   }
 }
}

这应该允许您使用ID。希望它有效。