Динамическая установка флажков в макете

В течение последних нескольких дней я ломал голову над тем, как точно взять каждый элемент из нескольких массивов строк и поместить их в флажки, которые затем будут помещены в линейный макет. Каждый раз, когда пользователь выбирает что-то из группы переключателей (находящейся на одной вкладке), содержимое этих линейных макетов (которые содержатся во всеобъемлющем линейном макете) будет изменяться в зависимости от того, какой переключатель был выбран. Так что это будет примерно так:

[Пользователь выбирает что-то на этой вкладке с помощью переключателей] -> [Эта вкладка здесь обновлена]

Рассматриваемая вкладка:

  • [Линейная компоновка]

    • [Linear Layout]
      • [x] String1
      • [х] Строка2
      • [х] Строка3

Я пытался использовать ListView, но содержимое каждой строки списка должно быть легко выбираемым (следовательно, с помощью флажков). Я думал о том, чтобы попробовать MergeAdapter, но мне пришлось бы каким-то образом изменять массивы, которые передаются ему каждый раз, когда происходит обновление (и я не использую ни SQLite, ни Cursors).

Так может у кого-нибудь есть предложения по устранению этой проблемы?

[Изменить] Извините, если мои намерения не были столь ясны. Я написал адаптер, который принимает массив строк и, если он установлен в ListView, будет показывать флажок в каждой строке списка. Вместо этого я хотел бы просто установить флажок с текстом в нем, установленным для одного из элементов массива и добавленным к одному из LinearLayouts. Это будет проходить через полный массив. Таким образом, у меня будет несколько наборов флажков, из которых пользователь может выбирать. Код (или псевдокод) будет выглядеть примерно так:

for (int i = 0; i < someArrayAdapter.size; i++) {
  ListView.addView(someArrayAdapter.getView(i, someConverView, someGroupView));
}

Где someArrayAdapter — пользовательский адаптер. Я обнаружил, что на самом деле не могу использовать getView() таким образом, поэтому мне нужно использовать какой-то другой метод (вот почему я спрашиваю здесь;)).


person Ertain    schedule 11.08.2011    source источник


Ответы (1)


Ознакомьтесь с моим более ранним ответом на очень аналогичный вопрос. Это может дать вам ответ, который вы ищете. В противном случае, дайте мне знать, и я постараюсь объяснить больше.

person Codeman    schedule 11.08.2011
comment
Спасибо за ответ, Phoenixblade9. К сожалению, это не совсем тот ответ, который я ищу. :-/ - person Ertain; 12.08.2011