关于 setPositiveButton 的问题

关于 setPositiveButton 的问题

http://img1.sycdn.imooc.com/climg//592f488100015c4f07150558.jpg

查了一下官方文档 实现  DialogInterface.OnClickListener接口的onClick方法应该是可以找到

the position of item 也就是 单选对话框的选项位置的但是这里的which 每一次都是返回 -1

http://img1.sycdn.imooc.com/climg//592f4c0f00010cad10160619.jpg


有没有方法点击 确定的时候 获得items的选择项的内容?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
irista23 2017-06-01 15:17:45

在setSingleChoiceItems中的onClick()中可以直接取值,如果想在setPositiveButton中取值就得循环自己处理了,参考如下关键代码:

AlertDialog dialog = new AlertDialog.Builder(this).setTitle("单选对话框").setIcon(R.drawable.xx)
        .setSingleChoiceItems(items, -1, new OnClickListener() {
 
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(MainActivity.this, items[which], Toast.LENGTH_SHORT).show();
                dialog.dismiss();
            }
        }).create();
dialog.show();
final String[] loves=getResources().getStringArray(R.array.loves);
final boolean[] checkedItems=new boolean[loves.length];
AlertDialog dialog = new AlertDialog.Builder(this).setTitle("单选对话框").setIcon(R.drawable.xx)
        .setPositiveButton(items, -1, new OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                for(int i=0;i<checkedItems.length;i++){//自己循环取值
                    if(checkedItems[i]){
                        sb.append(loves[i]);
                        sb.append("\n");
                    }
                }
            }
        }).create();
dialog.show();

如果解决了你的疑惑,请采纳,祝学习愉快~

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师