Хранение списка просмотра отображения позиции в базе данных - PullRequest
0 голосов
/ 11 августа 2011

Я создал вид списка андроидов, который позволяет пользователям изменять положение каждого элемента на нем. Тем не менее, я не могу понять, как я могу сохранить «измененную» позицию в базе данных наилучшим и наиболее эффективным способом, чтобы я мог извлечь курсор из базы данных, используя сортировку, отображая функцию id?

Может кто-нибудь помочь мне с этим? Спасибо.

UPDATE:

В настоящее время я думаю о том, чтобы сохранить позицию элемента в базе данных как последнюю позицию элемента после того, как он был создан, и после чего при его изменении я изменю позицию выбранного элемента в базе данных и выполню цикл для изменения всех остальных элементов, которые находятся под ним, с шагом 1.

имеет ли эта логика смысл?

1 Ответ

0 голосов
/ 11 августа 2011

Вы можете создать столбец в базе данных с именем ordinal (тип integer), чтобы сохранить порядок, в котором вы хотите, чтобы элемент отображался в списке.Когда пользователь реорганизует список, измените порядковый номер соответственно.

РЕДАКТИРОВАТЬ:

После прочтения вашего обновления, я не думаю, что это будет работать, потому что, если пользователь изменит положение чего-либониже того, который вы обновляете?

Почему бы просто не обновить позицию каждого элемента в соответствии с позицией в их ListView?

Таким образом, один из методов вашей базы данных будет:

public boolean updateOrdinal(int itemId, int ordinal)

{

    ContentValues c = new ContentValues();


    c.put("ordinal", ordinal);


    return db.update("TableName", c, kID + "=" + itemId, null) > 0;

}

Это будет вызвано после того, как пользователь "сохранит" список.Конечно, цикл должен вызывать это для каждого элемента.

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