Android之对话框百变篇(11) 博客分类: Android初步 安卓;对话框;监听事件;单选;复选框
程序员文章站
2024-03-11 21:28:01
...
在美团模仿版中我们小试牛刀了对话框,但是还是觉得对话框过于死板,到底能不能定制我们需要的对话框,加入各种组件,形成我们的个性版对话框,这节课将是你至关重要的。首先我们学会在对话框做出列表选项:
private String[] reason=new String[]{"没时间消费","预约不上","商家说可以直接到店消费","买多了","不想要了","网上评价不好","去过了不太满意","太贵","其他"};
定义列表选项按钮内容:
注意本节课代码是上上节课内容,此次不再做多余阐述然后再加入代码:
setItems(reason,new DialogInterface.OnClickListener(){ @Override public void onClick(DialogInterface arg0, int which) { Toast toast = Toast.makeText(MainActivity.this, "已删除!"+reason[which], Toast.LENGTH_SHORT); toast.show(); } })
效果:(注意自定义对话框要去掉setMessage,因为你已经用自定义的取代显示内容了)
在setItems可以设置列表选项,并且可以监听选项。既然可以定义列表选项同样我们可以定义单选选项setSingleChioceItems
于是我们将之前的列表选项内容替换成:
setSingleChoiceItems(reason,0, new DialogInterface.OnClickListener(){ @Override public void onClick(DialogInterface arg0, int which) { Toast toast = Toast.makeText(MainActivity.this, "已删除!"+reason[which], Toast.LENGTH_SHORT); toast.show(); } })
效果:
同样也可以定义复选框,我们知道美团默认的就是复选框,所以接下来就是要用到:setMultiChoiceItems
但是这时候使用到的监听器就不是OnCLICKListener了,而是onMultichoiceClickListener,因此同理我们去取代刚才的单选对话框:
private boolean[] ch=new boolean[]{true,true,true,true,true,true,true,true,false};
复选框要定义是否选中,这里有9个选项所以我们定义9个
setMultiChoiceItems(reason,ch, new DialogInterface.OnMultiChoiceClickListener(){ @Override public void onClick(DialogInterface arg0, int which, boolean isChecked) { for(int i=0;i<reason.length;i++){ if(i==which&&isChecked){ Toast toast = Toast.makeText(MainActivity.this, "已删除!"+reason[i], Toast.LENGTH_SHORT); toast.show(); } } } } )
这里我们要加入boolean以及添加的选项,效果如下:
这里我们同样对选项勾选进行监听,可以做相应事情,接下来可以定义时间,日期等,这些我们在下节课再讲。