繁体   English   中英

Android 中未出现警报对话框

[英]Alert dialog doesn't appear in Android

尝试为待办事项应用设置完成列表。 我试图在单击按钮时显示一个对话框,之后该对话框没有出现。

showdone.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                AlertDialog.Builder builder = new AlertDialog.Builder(todo.this);
                builder.setAdapter(itemdone, new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        String strDone = itemdone.getItem(which);
                        AlertDialog.Builder builderInner = new AlertDialog.Builder(todo.this);
                        builderInner.setTitle("Done List");
                        builderInner.setMessage(strDone);
                        builderInner.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int which) {
                                dialog.dismiss();
                            }
                        });
                        builderInner.create().show();
                    }
                });
                builder.show();
            }
        });

您想在对话框上调用 show,而不是在构建器上。 也从builder重命名为showDoneBuilder以区别于内部 builder。 拉出内部构建以提高可读性。

 showdone.setOnClickListener(new View.OnClickListener() {
     @Override
     public void onClick(View v) {
          AlertDialog.Builder showDoneBuilder = new AlertDialog.Builder(todo.this);
            showDoneBuilder.setAdapter(itemdone, new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    String strDone = itemdone.getItem(which);
                    showDoneListDialog(strDone);
                }
            });
            showDoneBuilder.create().show(); // THE FIX
    }
 }

 private void showDoneListDialog(String message) {
       AlertDialog.Builder builderInner = new AlertDialog.Builder(todo.this);
       builderInner.setTitle("Done List");
       builderInner.setMessage(message);
       builderInner.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
           @Override
           public void onClick(DialogInterface dialog, int which) {
               dialog.dismiss();
           }
       });
       builderInner.create().show();
} 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM