Значение по умолчанию для инвертора android spinner с помощью адаптера курсора

Я использую spinnerbox в своем приложении. Spinnerbox должен быть заполнен проектами из базы данных. Это само уже работает. Однако мне нужен один дополнительный элемент в раскрывающемся списке. Я хочу, чтобы первый элемент был "общим" генералом, а не проектом. Таким образом, он не извлекается из базы данных. Есть ли какой-либо способ либо вставить его в курсор или адаптер?

Ответ 1

Мне удалось решить эту проблему разным образом, после чего я изначально планировал. Но он работает хорошо. Вместо общего варианта. Я сделал флажок. Проверяется ли он, тогда его общий и прядильщик установлены. И если он не установлен, он становится включенным. Это работает для моей ситуации.

Ответ 2

Что сработало для меня, так это сделать UNION в sql-запросе.

dbStatic.rawQuery(
    " SELECT 2 as deftop, typeid as _id, typename as label FROM objtypes UNION "+
    " SELECT 1 as deftop, -1 as _id, "+strDefaultSpinner+" as label "+
    " ORDER BY deftop asc, label ", null
);

если выбранный элемент равен -1, тогда это значение по умолчанию. В противном случае это запись из таблицы.

Ответ 3

Я столкнулся с той же проблемой некоторое время назад. проблема в том, что вы не можете вставлять информацию в курсор (потому что это просто указатель), поэтому я считаю, что вы должны иметь какой-то посредник между ними. мой способ решения этого вопроса состоял в том, чтобы просто создать массив строк [cursor.getCount + 1] затем вставьте свой "общий" в [0], а затем перейдите к курсору, чтобы вставить остальные.

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