我遇到了我认为是一个简单的 android UI 设计问题,但我已经转了几天。我有一个 REST 服务,我从中下载 XML 并在 android 应用程序中以表单形式显示 XML。我建立了一个网页,并且正在使用 android 模仿这个,相同的选项,相同的 URL 被发送到 REST 服务,无论是从 android 还是网页。使用 HTML,我可以轻松地为各种 id/display 项创建复选框组和单选按钮/下拉菜单,例如,我可以将行星选项显示为:
<select name="planet"><option value="0">Mercury</option></select>
我想在 android 中做类似的事情,我有一对值,一个是 id,另一个是要显示的用户友好文本。所以我决定使用 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> {
}
所以现在我可以将我的 id 放在 pair.first 中,并在 pair.second 中向用户显示什么。
我的问题在于,其中一些选项将是单选,而有些将是多选。在 html 中,这不是问题,只需对多选使用复选框组,对单选使用单选按钮/下拉菜单。然而,在 android 中,它似乎并不是那么简单。我尝试将 Spinners 用于适配器,但 Spinner 似乎只允许单选。AlertDialog.Builder 允许单选和多选,但奇怪的是,我没有看到使用适配器进行多选的选项,仅用于单选。
我想我真正想要的是所有选项的外观一致,通过适配器显示单选按钮和多选复选框,这样我就可以从 Pair 中获取所选项目的 ID。
我应该使用什么方法?为多选添加了代码的自定义微调器?AlertDialog.Builder 并以某种方式使其使用适配器进行多选?只需创建一个普通的 Alert 并在其中包装一个 ListView 吗?另一个(希望)更简单的选择?
我觉得我在这里遗漏了一些非常基本的东西。