【问题标题】:How to set Single Choice Items inside AlertDialog?如何在 AlertDialog 中设置单选项目?
【发布时间】:2011-12-13 06:15:31
【问题描述】:

我无法在 AlertDialog 中设置单选列表或多选列表。

我尝试按照示例进行操作,但我只得到一个带有标题、确定和取消按钮的对话框,没有列表,也没有消息(我设置了!)。

代码如下:

    protected Dialog onCreateDialog(int id) {
    switch (id) {
    case DIALOG_DELETE_CITY:
        CharSequence[] array = {"Red", "Blue", "Yellow"}; 
        return new AlertDialog.Builder(ShowPypData.this)
            .setTitle(R.string.city_actions_delete_label)
            .setMessage(R.string.city_actions_delete_select_label)
            .setSingleChoiceItems(array, -1, new DialogInterface.OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        // TODO Auto-generated method stub

                    }
                })
            .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {

                @Override
                public void onClick(DialogInterface dialog, int which) {
                    // TODO Auto-generated method stub

                }

            })
            .setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {

                @Override
                public void onClick(DialogInterface dialog, int which) {
                    dialog.dismiss();

                }
            }).create();
    default:
        return null;
    }

}

奇怪的是,如果我评论 setSingleChoiceItems 部分,我可以在对话框中看到消息。

【问题讨论】:

    标签: android android-alertdialog


    【解决方案1】:

    似乎ButtonsMessageMultiple choice items 是互斥的。尝试注释掉setMessage()setPositiveButton()setNegativeButton()。自己没查。

    【讨论】:

    【解决方案2】:

    这段代码对我有用

     final CharSequence[] charSequence = new CharSequence[] {"As Guest","I have account here"};
    
            AlertDialog.Builder builder = new AlertDialog.Builder(this);
            builder.setTitle("Buy Now")
                    //.setMessage("You can buy our products without registration too. Enjoy the shopping")
                    .setSingleChoiceItems(charSequence, 0, new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            utility.toast(" "+charSequence);
                        }
                    })
            .setPositiveButton("Go", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    dialog.dismiss();
                }
            });
            builder.create().show()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-26
      • 2017-04-11
      • 1970-01-01
      • 1970-01-01
      • 2014-05-30
      • 2017-11-05
      • 2017-08-31
      • 1970-01-01
      相关资源
      最近更新 更多