带按钮的警报对话框引发异常

时间:2015-06-22 09:34:52

标签: android android-dialog

通过执行以下操作显示警告对话框:

    new AlertDialog.Builder(this)
            .setTitle(R.string.label_searching)
            .setMessage(R.string.label_search_noresults)
            .setCancelable(false)
            .setPositiveButton(DialogInterface.BUTTON_POSITIVE, null)
            .create().show();

然而,抛出了这个异常:

  

致命的例外:主要       android.content.res.Resources $ NotFoundException:字符串资源ID#0xffffffff               在android.content.res.Resources.getText(Resources.java:242)               在android.content.Context.getText(Context.java:282)               在android.app.AlertDialog $ Builder.setPositiveButton(AlertDialog.java:487)

当我注释掉以下内容时:

.setPositiveButton(DialogInterface.BUTTON_POSITIVE, null)

显示对话框,但显然没有按钮显示。我需要在对话框中显示一个按钮!!

我做错了什么?

5 个答案:

答案 0 :(得分:1)

相应地使用

  AlertDialog.Builder alertbox = new AlertDialog.Builder(YourActivity.this);

               alertbox.setTitle("Do you want To exit ?");
               alertbox.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                   public void onClick(DialogInterface arg0, int arg1) { 
                      // finish used for destroyed activity
                       exit();
                   }
               });

               alertbox.setNegativeButton("No", new DialogInterface.OnClickListener() {
                   public void onClick(DialogInterface arg0, int arg1) {
                           // Nothing will be happened when clicked on no button 
                           // of Dialog     
                 }
               });

               alertbox.show();

答案 1 :(得分:-1)

我认为DialogInterface.BUTTON_POSITIVE存在问题 您可以在here

找到解决方案

答案 2 :(得分:-1)

DialogInterface.BUTTON_POSITIVE是一个常量,如果你检查DialogInterface类:

int BUTTON_POSITIVE = -1;

setPositiveButton方法接收textId或其争论的charsequence,这是将出现在positive按钮上的文本。 Android无法找到DialogInterface定义的-1 id的关联字符串。

我建议您在xml文件中定义正面按钮文本,就像使用标题和消息标签一样,并在第一个参数上使用它。

答案 3 :(得分:-1)

private void createAlertDialog() {

     AlertDialog.Builder alrtDialog = new AlertDialog.Builder(
                this);
        alrtDialog.setMessage("your message").setCancelable(false);
        alrtDialog.setPositiveButton("ButtonName",
                new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                //Do somthing
            }
        });

        alrtDialog.setNeutralButton(R.string.cancel,
                new DialogInterface.OnClickListener() {

            public void onClick(DialogInterface dialog, int which) {
                //Do somthing
            }
        });
        alrtDialog.create();
        alrtDialog.show();
    }

答案 4 :(得分:-1)

你需要获得类似这样的字符串ID。

new AlertDialog.Builder(this)
    .setTitle(getResources().getString(R.string.label_searching))
    .setMessage(getResources().getString(R.string.label_search_noresults))
    .setCancelable(false)
    .setPositiveButton(DialogInterface.BUTTON_POSITIVE, null)
    .create().show();