Android使用AlertDialog实现的信息列表单选、多选对话框功能
程序员文章站
2023-08-16 21:52:28
在使用alertdialog实现单选和多选对话框时,分别设置setsinglechoiceitems()和setmultichoiceitems()函数。
下面看主要的代...
在使用alertdialog实现单选和多选对话框时,分别设置setsinglechoiceitems()和setmultichoiceitems()函数。
下面看主要的代码:
数据源数组:
<resources> <!--单选--> <string-array name="arr_weather"> <item >晴</item> <item >多云</item> <item >小雨</item> <item >中雨</item> </string-array> <!--多选--> <string-array name="arr_grasslandgreattype"> <item >羊草</item> <item >牛草</item> </string-array> </resources>
activity中的主要代码:
点击事件:
case r.id.edt_sampleweather:// 天气选取 string[] arrweather = getresources().getstringarray(r.array.arr_weather); showalertdialog(arrweather, selectweatherid, 0, tv_sampleweather); break; case r.id.edt_grasslandgreattype:// 草地优势种选择 showmultidialog(); break;
对应方法:
(1)showalertdialog()方法,实现单选效果,selectweatherid 设置选定的条目位置
private void showalertdialog(final string[] items, int selectid, final int type, final textview tview) { alertdialog.builder builder = new alertdialog.builder(createpointactivity.this); builder.setsinglechoiceitems(items, selectid, new dialoginterface.onclicklistener() {// 第二个参数是设置默认选中哪一项-1代表默认都不选 @override public void onclick(dialoginterface dialog, int which) { tview.settext(items[which]); if (type == 0) { selectweatherid = which; } else if (type == 1) { selectgrasslandtypeid = which; } else if (type == 2) { selectagrotypeid = which; } dialog.dismiss(); } }); alertdialog dialog = builder.create(); dialog.show(); dialog.setcanceledontouchoutside(true);// dialog弹出后,点击界面其他部分dialog消失 }
(2)showmultidialog()方法,实现多选效果
boolean[] selected = new boolean[] { false, false };//默认选中位置 private void showmultidialog() { alertdialog.builder builder = new alertdialog.builder(this); builder.settitle("草地优势种选择列表"); dialoginterface.onmultichoiceclicklistener mutilistener = new dialoginterface.onmultichoiceclicklistener() { @override public void onclick(dialoginterface dialoginterface, int which, boolean ischecked) { selected[which] = ischecked; } }; builder.setmultichoiceitems(r.array.arr_grasslandgreattype, selected, mutilistener); dialoginterface.onclicklistener btnlistener = new dialoginterface.onclicklistener() { @override public void onclick(dialoginterface dialoginterface, int which) { string selectedstr = ""; for (int i = 0; i < selected.length; i++) { if (selected[i] == true) { selectedstr = selectedstr + " " + getresources().getstringarray(r.array.arr_grasslandgreattype)[i]; } } if (!textutils.isempty(selectedstr)) { tv_grasslandgreattype.settext(selectedstr); } else { tv_grasslandgreattype.settext("暂无选择"); } } }; builder.setnegativebutton("取消", null); builder.setpositivebutton("确定", btnlistener); alertdialog dialog = builder.create(); dialog.show(); dialog.setcanceledontouchoutside(true);// dialog弹出后,点击界面其他部分dialog消失 }
以上就是实现的主要方法。
效果如下:
单选:
多选:
本站还给大家提供了有关android开发方面的专题栏目,大家可以参考下:
以上所述是小编给大家介绍的android使用alertdialog实现的信息列表单选、多选对话框功能,希望对大家有所帮助
上一篇: jsonp跨域获取百度联想词的方法分析
下一篇: 网站关键词密度该如何调整