2010-11-11 2 views
0

Я написал APP, у приложений есть небольшая база данных SQL Lite и с помощью адаптера курсора я могу получить записи и заполнить их с помощью списка. оттуда я могу получить идентификатор выбранного элемента и удалить его из базы данных, которая отлично работает. проблема заключается в том, что по мере того, как БД растет, удаляя одну строку за раз, было бы медленным и разочаровывающим, поэтому я хотел знать, есть ли способ разрешить несколько вариантов, возможно, с помощью флажков или даже изменить цвет текста выбранных элементов так что я могу вернуть их родственников.Адаптер курсора с несколькими выборами

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

private void fillData() { 
    Cursor c = mDbHelper.fetchAllNotes(); 
    startManagingCursor(c); 

    String[] from = new String[] {DBHelper.KEY_FIELD0, 
          DBHelper.KEY_FIELD1, 
          DBHelper.KEY_FIELD2, 
          DBHelper.KEY_FIELD3, 
          DBHelper.KEY_FIELD4}; 
    int[] to = new int[] {R.id.text,R.id.text2,R.id.text3,R.id.text4,R.id.text5}; 
    SimpleCursorAdapter dblist = new SimpleCursorAdapter(this, R.layout.row, c, from, to);                        
    setListAdapter(dblist); 
} 

Спасибо.

ответ

0

я не сделал это сам, но я нашел этот учебник, который объясняет, как добавить флажки в список:

http://www.androidpeople.com/android-listview-multiple-choice-example/

Вы можете использовать этот пример, чтобы позволить кратный выбор элементов в списке контроль. Вместо использования адаптера массива массива, как в этом примере, используйте SimplecursorAdapter. Единственный результат, который вам нужно будет решить, заключается в том, что в примере для записи списка используется android.R.layout.simple_list_item_multiple_choice, и вам нужно заменить его на свой макет, так как вам явно требуется несколько текстовых полей.

Я не дома, так что я не могу попробовать его, но я нашел это: http://www.mail-archive.com/[email protected]/msg21920.html

, который, кажется, относятся к сделать свой собственный макет multiple_choice для элемента списка.

После того, как пользователь сделал свой выбор, вы можете удалить несколько записей за один раз, запустив SQL в адаптере базы данных:

DELETE FROM test WHERE _id IN (1, 3, 6, 7) 

где список чисел выбранного значения идентификаторов.

+0

Ian, Большое спасибо за это, я получу работу, интегрируя его в мой существующий код. Я довольно новичок в Android и SQLite. Интересно, могу ли я задать другой вопрос о том, что должно быть простым, но не сработает для меня. Я хочу запустить простой подсчет числа против базы данных и иметь возможность передать полученный результат в текстовое представление. – user500963

+0

Я создал свой собственный макет для отображения всех полей и добавил флажок, но я потерял возможность выбора элемента и захвата его идентификатора. Я могу проверить/снять флажок. – user500963

+0

Я обнаружил, что путь вокруг этого заключается в том, чтобы установить настраиваемый атрибут checkbox в false, и это позволяет снова выбирать элементы. – user500963

Смежные вопросы