Android ListView с флажком Удаление / Получение идентификатора строки

Я пытаюсь реализовать listview с флажком, так что, когда флажок установлен, строка списка будет удалена. Я заполняю список с помощью курсора, и это работает нормально, и отображается флажок.

У меня возникают проблемы с тем, как получить _id строки проверяемого поля.

Может ли кто-нибудь показать мне, как реализовать что-то подобное

ListView и CheckBox

Cursor cursor = db.getAllItems(); //String[] columns = new String[] {db.KEY_NAME, db.KEY_CODE, db.KEY_ROWID}; String[] columns = new String[] {db.KEY_ITEM_NAME, db.KEY_MEASUREMENT, db.KEY_UNIT}; int[] to = new int[] {R.id.ingredientName, R.id.ingredientMeasurement, R.id.ingredientUnit}; final SimpleCursorAdapter myCursorAdapter = new SimpleCursorAdapter(this,R.layout.row4, cursor, columns, to, 0); final ListView shoppingList = (ListView) findViewById(R.id.shoppingList); shoppingList.setAdapter(myCursorAdapter); CheckBox deleteCheck = (CheckBox)findViewById(R.id.checkBox1); deleteCheck.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup group, int checkedId) { if (isChecked){ // How do I get the list item clicked to delete row? } } }); 

XML – Row.4.xml

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal" android:weightSum="1"> <TextView android:id="@+id/ingredientName" android:layout_width="wrap_content" android:textColor="#000000" android:layout_height="wrap_content" android:padding="5dp" android:hint="wewewe"/> <TextView android:id="@+id/ingredientMeasurement" android:textColor="#000000" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_toRightOf="@+id/ingredientName" android:padding="5dp" android:hint="fefefef"/> <TextView android:id="@+id/ingredientUnit" android:textColor="#000000" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_toRightOf="@+id/ingredientMeasurement" android:padding="5dp" android:hint="qqqqq"/> <CheckBox android:id="@+id/checkBox1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="right" android:background="#fff" android:text=""/> </LinearLayout> 

Используйте этот пользовательский адаптер курсора и обработайте onCheckedChanged здесь в этом адаптере.

 import android.content.Context; import android.database.Cursor; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.SimpleCursorAdapter; public class CustomAdapter extends SimpleCursorAdapter implements CompoundButton.OnCheckedChangeListener { private Context mContext; private Context appContext; private int layout; private Cursor cr; private final LayoutInflater inflater; public CustomAdapter(Context context, int layout, Cursor c, String[] from, int[] to) { super(context, layout, c, from, to); this.layout = layout; this.mContext = context; this.inflater = LayoutInflater.from(context); this.cr = c; } @Override public View newView(Context context, Cursor cursor, ViewGroup parent) { return inflater.inflate(layout, null); } @Override public void bindView(View view, Context context, Cursor cursor) { super.bindView(view, context, cursor); CheckBox checkBox1 = (CheckBox) view.findViewById(R.id.checkBox1); checkBox1.setOnCheckedChangeListener(this); int columnIndex = cursor.getColumnIndex(your column here); int columnvalue = cursor.getInt(columnIndex); checkBox1.setTag(columnvalue); } @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { int id = (Integer) buttonView.getTag(); } } 
Intereting Posts
Избегать выделения объектов в onDraw () (StaticLayout)? Есть ли какой-либо шаблон разработки, который может заменить IntentService для сетевых запросов? ThumbnailUtils.createVideoThumbnail возвращает NULL при записи нового видео Fixed-Point-Math – Является ли преобразование из безопасного поплавка, чтобы всегда давать тот же результат? Что означает состояние java-потока? Поддерживает ли Android виджет, такой как iPhone UIPickerView Запускать приложение только в альбомном режиме? Кнопка Android и размер текста Android – почему Dialog не будет близок к dialog.dismiss () Изменение цвета фона в раскрывающемся списке автозаполнения searchview Android. Поиск по тегу Использование диалога общего доступа в Android Facebook SDK. Как узнать, действительно ли пользователь разделяет или отменяет совместную деятельность? Используя GSON для разбора и размещения в списке объектов Как повернуть TextView без ограничения его границ? Proguard и интерфейсы с методом по умолчанию