如何从ListView
获取所选项目(复选框中的选定视图)?
我从Handler
中的CursorAdapter
获得了一些结果。
public class MyCursorAdapter extends CursorAdapter {
@SuppressWarnings("deprecation")
public MyCursorAdapter(Context context, Cursor c) {
super(context, c);
// TODO Auto-generated constructor stub
}
@Override
public void bindView(View view, final Context context, Cursor cursor) {
TextView item=(TextView)view.findViewById(R.id.item_tv);
CheckBox cb=(CheckBox)view.findViewById(R.id.flag_cb);
item.setText(cursor.getString(cursor.getColumnIndex(cursor.getColumnName(1))));
Log.d("Bind View", "Flag="+cursor.getString(cursor.getColumnIndex(cursor.getColumnName(2))));
if(cursor.getString(cursor.getColumnIndex(cursor.getColumnName(1))).equalsIgnoreCase("true")){
cb.setChecked(true);
}else{
cb.setChecked(false);
}
cb.setOnCheckedChangeListener(new OnCheckedChangeListener() {
DatabaseHelperSQL help=new DatabaseHelperSQL(context);
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(isChecked){
Toast.makeText(context, "Check", Toast.LENGTH_LONG).show();
}else{
Toast.makeText(context, "unCheck", Toast.LENGTH_LONG).show();
}
}
});
}
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
LayoutInflater inflater=LayoutInflater.from(parent.getContext());
View retView=inflater.inflate(R.layout.every_row,parent,false);
return retView;
}
}
答案 0 :(得分:0)
这取决于您的具体需求:
如果您需要所选项目的ID,可以使用boolean[] selected
,它将存储每个项目的状态。
如果您需要获得完全选定的项目,可以使用List<View> selected
加入onCheckedChanged
并在需要时返回