В течение последних нескольких дней я ломал голову над тем, как точно взять каждый элемент из нескольких массивов строк и поместить их в флажки, которые затем будут помещены в линейный макет. Каждый раз, когда пользователь выбирает что-то из группы переключателей (находящейся на одной вкладке), содержимое этих линейных макетов (которые содержатся во всеобъемлющем линейном макете) будет изменяться в зависимости от того, какой переключатель был выбран. Так что это будет примерно так:
[Пользователь выбирает что-то на этой вкладке с помощью переключателей] -> [Эта вкладка здесь обновлена]
Рассматриваемая вкладка:
[Линейная компоновка]
- [Linear Layout]
- [x] String1
- [х] Строка2
- [х] Строка3
- [Linear Layout]
Я пытался использовать ListView, но содержимое каждой строки списка должно быть легко выбираемым (следовательно, с помощью флажков). Я думал о том, чтобы попробовать MergeAdapter
, но мне пришлось бы каким-то образом изменять массивы, которые передаются ему каждый раз, когда происходит обновление (и я не использую ни SQLite, ни Cursors).
Так может у кого-нибудь есть предложения по устранению этой проблемы?
[Изменить] Извините, если мои намерения не были столь ясны. Я написал адаптер, который принимает массив строк и, если он установлен в ListView, будет показывать флажок в каждой строке списка. Вместо этого я хотел бы просто установить флажок с текстом в нем, установленным для одного из элементов массива и добавленным к одному из LinearLayouts. Это будет проходить через полный массив. Таким образом, у меня будет несколько наборов флажков, из которых пользователь может выбирать. Код (или псевдокод) будет выглядеть примерно так:
for (int i = 0; i < someArrayAdapter.size; i++) {
ListView.addView(someArrayAdapter.getView(i, someConverView, someGroupView));
}
Где someArrayAdapter
— пользовательский адаптер. Я обнаружил, что на самом деле не могу использовать getView()
таким образом, поэтому мне нужно использовать какой-то другой метод (вот почему я спрашиваю здесь;)).