Android AlertDialog Builder

时间:2012-12-03 01:10:00

标签: android alertdialog builder

我有一个我会显示的警报,但无论我做什么,alertdialog都会显示空白的标题和消息。 图标,正面按钮和负面按钮显示正确的描述。 以下是我使用的代码片段: 在清单文件中:

<uses-sdk
android:minSdkVersion="5"
android:targetSdkVersion="16" />

在我的代码中,我声明:

import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;

我也宣布了上下文:

final Context context = this;

我将警报发送到:

public void confirm() {

    AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(context);

        // set title

        alertDialogBuilder.setTitle("This is title");
        alertDialogBuilder.setIcon(R.drawable.ic_delete);

        // set dialog message
        alertDialogBuilder
        .setMessage("This is the message")
            .setCancelable(false)
            .setPositiveButton(R.string.yes,new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog,int id) {
                    // if this button is clicked, close
                    // current activity
                    MainActivity.this.finish();
                }
              })
            .setNegativeButton(R.string.no,new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog,int id) {
                    // if this button is clicked, just close
                    // the dialog box and do nothing
                    dialog.cancel();
                }
            });

            // create alert dialog
            AlertDialog alertDialog = alertDialogBuilder.create();



    // show it
            alertDialog.show();


}

然后我从我需要的地方打电话确认,如下:

confirm();

警报显示正常。 图标已设置 setPositiveButton很好并且包含正确的描述 setNegativeButton很好,包含正确的描述

标题为空白 消息为空白

有什么想法吗?

4 个答案:

答案 0 :(得分:4)

你可以使用

        AlertDialog.Builder builder = new AlertDialog.Builder(YourActivity.this);
        builder.setTitle("Modify Customer Details");

OR

        Dialog dialog = new Dialog(YourActivity.this);
        dialog.setTitle("Payment Options");

答案 1 :(得分:2)

尝试以这种方式设置消息和标题。这来自developer's guide on Dialogs

// 1.使用构造函数实例化AlertDialog.Builder AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());

// 2.将各种setter方法链接在一起以设置对话框特征 builder.setMessage(R.string.dialog_message)        .setTitle(R.string.dialog_title);

// 3.从create()获取AlertDialog AlertDialog对话框= builder.create();

答案 2 :(得分:0)

它与您在上下文中的主题相关(“this”)。您需要检查此上下文。 或者你应该夸大自己的视图,并调用setView将其放入。

答案 3 :(得分:0)

请将alertDialog创建行更改为:

AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this, android.R.style.Theme_Material_Light_Dialog_Alert);