У меня есть то, что я считал простой проблемой дизайна пользовательского интерфейса Android, но я пару раз ездил по кругу. У меня есть служба REST, с которой я загружаю XML и отображаю XML в форме в приложении для Android. У меня есть веб-страница, и я имитирую это с помощью андроида, с теми же параметрами, теми же URL-адресами, которые отправляются в службу REST, независимо от того, являются ли они андроидом или веб-страницами. В HTML можно легко создать флажок группу и RadioButton/выпадающие для различных элементов ID/дисплея, так, например, я могу отобразить опцию планеты, как:AlertDialog vs Spinner vs ListView
<select name="planet"><option value="0">Mercury</option></select>
Я хотел сделать что-то подобное в андроиде, где я был пара значений, один идентификатор, а другой - удобный текст для отображения. Поэтому я решил создать адаптер с помощью android.util.Pair:
public class PairView extends Pair<String, String> {
public PairView(String first, String second) {
super(first, second);
}
public String toString() {
return second;
}
}
public class PairAdapter extends ArrayAdapter<PairView> {
}
Так что теперь я могу поставить мой идентификатор в pair.first и что для отображения пользователю в pair.second.
Моя проблема заключается в том, что некоторые из этих параметров будут однодисковыми, а некоторые будут мультивыборными. В html это не проблема, просто используйте группу флажков для нескольких, а также переключатели/выпадающие списки для отдельных выборок. Однако в андроиде это не так прямолинейно. Я пробовал использовать Spinners для адаптеров, но Spinner, кажется, допускает только один выбор. AlertDialog.Builder позволяет выбирать один и несколько вариантов, но, с любопытством, я не вижу возможности использовать адаптер для многоэкранного выбора, только для одного выбора.
Я предполагаю, что я действительно хочу, это последовательный поиск всех моих опций, с помощью переключателей, отображаемых для отдельных выборов, и флажков, отображаемых для нескольких выборов, через адаптер, чтобы я мог получить идентификатор из пары для выбранных элементов.
Какой подход следует использовать? Пользовательский счетчик с добавленным кодом для нескольких вариантов? AlertDialog.Builder и каким-то образом использовать адаптер для нескольких вариантов? Просто создайте простое оповещение и оберните ListView в нем? Другой вариант, который (надеюсь) проще?
Я чувствую, что мне не хватает чего-то очень простого здесь.
Я думаю, что это поможет мне. Спасибо за подсказку, я не знал о SetTag, использование этого должно упростить для меня вещи. – mvsjes2
Будьте осторожны с setTag ... люди любят java, потому что это строго типизированный язык. методы, возвращающие объект, запрашивают проблемы. –