Форум программистов, компьютерный форум, киберфорум
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,071
#1

Оптимизация записи в БД из ListView - Программирование Android

11.04.2014, 11:03. Просмотров 605. Ответов 6
Метки нет (Все метки)

Есть ListView с текстом и CheckBox, при загрузке приложения значения ListView заполняются из БД.
_idNameCheck
1Москва1
2Казань0
3Ростов0
4Минск1
5Дели1
Затем тапом снимаю/отмечаю некоторые CheckBox (Москва, Казань, Минск) и нажимаю кнопку "Запомнить"
Запоминаю отмеченные через getChekedItemPosition()
Циклом прохожу по всему ListView и каждую строку записываю в БД:
SQL
1
db.execSQL(String.format(UPDATE ... SET ... WHERE))
Получается:
_idNameCheck
1Москва0
2Казань1
3Ростов0
4Минск0
5Дели1

Записей порядка 300, и вот долго записывает в БД. Думаю как то запоминать только измененные чекбоксы, но может есть еще другие варианты? Т.е. как записывать только измененные чекбоксы и не трогать неизмененные.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.04.2014, 11:03
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Оптимизация записи в БД из ListView (Программирование Android):

Отображение записи ListView - Программирование Android
Делаю приложение для заметок. Заметки сохраняются в файле. Механизм открытия заметки для редактирования я представляю так: при клике на...

Обновление ListView после добавления записи - Программирование Android
Выбираю записи из БД и вывожу их в ListView. В этом же активити есть кнопка добавления записи в БД. После добавления я хочу что б эта...

Как отобразить в диалог окне информацию с БД о записи, на которую кликнул в ListView? - Программирование Android
Помогите пожалуйста! Имею Листвью в который выводятся записи из БД через адаптер. При нажатии на пункт - вывожу диалог, в котором...

Как найти id записи в SQlite таблице при клике на кнопку расположенную в Listview item? - Программирование Android
привет ! подскажите пожалуйста решение((( Кейс: у меня есть листвью , который выводит записи из локальной БД. На каждом айтеме...

ListView. После добавления кнопки перестал быть доступен сам ListView - Программирование Android
Кастомизировал ListView с помощью нескольких TextView. Но после того, как добавил ImageButton сам список стал недоступен для клика, а...

Listview вывод данных и переход по нажатию на другой Listview SQLite - Программирование Android
Доброго извините за название темы, долго не мог сформировать название, В общем у меня беда с пытаюсь написать программу где первый экран...

6
kirawa
34 / 34 / 1
Регистрация: 12.11.2013
Сообщений: 338
11.04.2014, 12:05 #2
Цитата Сообщение от Rube Посмотреть сообщение
Т.е. как записывать только измененные чекбоксы и не трогать неизмененные.
По индексу

Добавлено через 2 минуты
ты вообще на какое событие опираешься?
0
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,071
11.04.2014, 12:16  [ТС] #3
Цитата Сообщение от kirawa Посмотреть сообщение
ты вообще на какое событие опираешься?
Вот
Цитата Сообщение от Rube Посмотреть сообщение
нажимаю кнопку "Запомнить"
0
kirawa
34 / 34 / 1
Регистрация: 12.11.2013
Сообщений: 338
11.04.2014, 12:29 #4
ну в оперативке работай, создай 2 коллекции храни id и сheck ну и сравнивай поля и уже сохраняй только изменившиеся, А так я бы опирался на событие OnItemClick
1
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,071
11.04.2014, 12:39  [ТС] #5
Цитата Сообщение от kirawa Посмотреть сообщение
создай 2 коллекции храни id и сheck ну и сравнивай поля и уже сохраняй только изменившиеся
Это да, первая мысль была такая, думал может еще что подскажут.
Цитата Сообщение от kirawa Посмотреть сообщение
А так я бы опирался на событие OnItemClick
Это логично, тоже думал, но боюсь будут видны задержки интерфейса, хотя мысль пришла, можно в AssynkTask делать.
0
kirawa
34 / 34 / 1
Регистрация: 12.11.2013
Сообщений: 338
11.04.2014, 13:08 #6
не будет ни каких задержек, ты шо этож андроид а не тамагоч там какойнить
1
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,071
12.04.2014, 00:03  [ТС] #7
Цитата Сообщение от kirawa Посмотреть сообщение
не будет ни каких задержек
проверю вечером на практике, если получится, дам в репу

Добавлено через 10 часов 12 минут
Работает быстро, спасибо.
Java
1
2
3
4
5
6
7
8
9
10
choiceList.setOnItemClickListener(new OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View v, final int position, long id) {
        int re = choiceList.isItemChecked(position) == true ? 1 : 0; // значение чекбокса
        DB dbb = new DB(ChList.this);
        SQLiteDatabase db = dbb.getWritableDatabase();
        db.execSQL(String.format("UPDATE " + DB.NAME + " SET " + DB.CHECK
            + " = " + re + " WHERE " + DB.NAME + " = '" + choiceList.getItemAtPosition(position).toString() + "'")); 
    }
});
0
12.04.2014, 00:03
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.04.2014, 00:03
Привет! Вот еще темы с ответами:

Данные из SQlite в ListView, обработка события ListView - Программирование Android
Ребят, есть БД, ListView. Надо при нажатии на строчку ListView вытащить данные int из БД. mList.setOnItemClickListener(new...

ListView: добавление записи, выбор записи, удаление записи - Visual Basic .NET
на форме есть три текст бокса: textbox1(имя), textbox2(фамилия), textbox3(отчество), textbox4(выбранное) кнопка Button1(добавить),...

Оптимизация ListView - Delphi
Есть функция, на вход которой подаётся var sbItems: arTStrings; var cpItems: arString type arTStrings = array of TStrings; type...

ListView и правильность\оптимизация кода - C++ Builder
Приветствую всех. Вопросов несколько: 1. Запутался с последовательностью выполнения команд 2. Как записать результат проверки в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru