java - android 中的弹出窗口内未显示复选框

标签 java android android-alertdialog

我正在尝试添加一个带有复选框的弹出窗口,如果未选中该复选框,则不应在弹出窗口上按"is",并且最好在弹出窗口中显示某种错误消息。我的尝试如下。

    AlertDialog.Builder builder = new AlertDialog.Builder(EmptyActivity.this);
    builder.setTitle(R.string.app_name);
    builder.setMessage("Confirm for go?");
    final CharSequence[] items = {"Something to check before going "};
    final ArrayList selectedItems=new ArrayList();
    builder.setMultiChoiceItems(items, null, new DialogInterface.OnMultiChoiceClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which, boolean isChecked) {
            //Here you add or remove the items from the list selectedItems. That list will be the result of the user selection.
            if(isChecked) {
                selectedItems.add(which);
            }
        }
    });

    builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int id) {
            dialog.dismiss();
            if(selectedItems.size() == 1) {
                //call going api
            }
            else{
                //show an error msg inside pop up to tick the checkbox and unable to click yes
            }
        }
    });
    builder.setNegativeButton("No", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int id) {
            dialog.dismiss();
        }
    });
    AlertDialog alert = builder.create();
    alert.show();

弹出窗口如下图所示。

enter image description here

当我运行它时,我看不到弹出窗口中的复选框。那么有人知道我哪里错了吗?我应该如何在弹出窗口中显示错误消息,以通知用户在单击"is"之前勾选复选框?

最佳答案

    private void showDialogue() {

            AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(this);
            LayoutInflater inflater = this.getLayoutInflater();
            View dialogView = inflater.inflate(R.layout.custom_dashboard, null);
            dialogBuilder.setView(dialogView);
            final AlertDialog alertDialog = dialogBuilder.create();
            final CheckBox one = dialogView.findViewById(R.id.chk01);

            Button done = dialogView.findViewById(R.id.done);
            done.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    if (one.isChecked()) {
                  //do something
                }else{
 //do something               
}
            });
            alertDialog.show();


        }

关于java - android 中的弹出窗口内未显示复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60289978/

相关文章:

java - Android 如何将字符串数组设置为单个 TextView

java - objectify-appengine - 嵌入式类 - 不是受支持的属性类型

java - Hashmap 中的 NullPointerException 错误

java - 如何从首选项中的 AlertDialog 获取值

android - AlertDialog 列表中的自定义对象;如何获取显示字符串然后获取实际值?

android - 如何自定义警报对话框以使按钮适合警报对话框

java - 使用 args4j 解析命令行选项时出现异常

android - 使所有 gcm token 无效

android - 将 developerPayload 插入到 getBuyIntent() 方法

android - Exoplayer 2 防止视频播放时屏幕变暗