如果从用户体验的角度来看,数字列表相当短(即用户不想搜索/过滤列表),您可以使用传统的单选列表 AlertDialog。您只需要稍微修改文档中的示例:
final List<Integer> list = new ArrayList<Integer>();
list.add(1);
list.add(2);
list.add(3);
final CharSequence[] numbers = new CharSequence[list.size()];
for (int i = 0; i < list.size(); i++) {
numbers[i] = list.get(i).toString();
}
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle("Remove entry:");
builder.setItems(numbers, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
list.remove(which);
}
});
builder.create().show();
正如您在文档中看到的那样,该setItems
方法被重载以接受CharSequence
数组。所以基本上,您需要在创建Dialog
. (String
实现CharSequence
,从而toString()
完成工作。)
在 中OnClickListener
,所选菜单项的索引作为which
方法传递onClick
。由于菜单项索引和列表项索引相同,您可以使用which
从实际列表中删除该项目。
相同的方法适用于浮动列表,只需根据区域设置对其进行格式化。