我有一个我会显示的警报,但无论我做什么,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很好,包含正确的描述
标题为空白 消息为空白
有什么想法吗?
答案 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);