Java 警报对话框自定义
我刚刚添加了一个警报对话框,当点击后退按钮时会弹出。我相信它设置为默认的android警报。是否可以自定义“警报”对话框的外观,例如更改背景或将绘图设置为背景?我是新手,所以我不知道该怎么办。谢谢,下面是我用于警报对话框的代码 警报对话框:Java 警报对话框自定义,java,android,eclipse,android-alertdialog,Java,Android,Eclipse,Android Alertdialog,我刚刚添加了一个警报对话框,当点击后退按钮时会弹出。我相信它设置为默认的android警报。是否可以自定义“警报”对话框的外观,例如更改背景或将绘图设置为背景?我是新手,所以我不知道该怎么办。谢谢,下面是我用于警报对话框的代码 警报对话框: public boolean onKeyDown(int keyCode, KeyEvent event) { //Handle the back button if(keyCode == KeyEvent.KEYCODE_B
public boolean onKeyDown(int keyCode, KeyEvent event) {
//Handle the back button
if(keyCode == KeyEvent.KEYCODE_BACK) {
//Ask the user if they want to quit
new AlertDialog.Builder(this)
.setIcon(android.R.drawable.ic_dialog_alert)
.setTitle(R.string.quit)
.setMessage(R.string.really_quit)
.setPositiveButton(R.string.yes, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
//Stop the activity and pause media player
mainSound.pause();
MainActivity.this.finish();
}
})
.setNegativeButton(R.string.no, null)
.show();
return true;
}
else {
return super.onKeyDown(keyCode, event);
}
}
Android文档中介绍了如何创建CustumDialog: 在页面的按钮处,您可以找到一个名为“创建自定义对话框”的点。如下所示 创建xml布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/dialog_layout_root"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="10dp"
>
编辑:
你应该把你的代码重新排列成这样。。。
在类级别创建AlertDialog.Builder
private AlertDialog.Builder builder;
在onCreate()中创建AlertDialog
LayoutInflater inflater = getLayoutInflater();
View dialoglayout = inflater.inflate(R.layout.dialog_layout, (ViewGroup) findViewById(R.id.dialog_layout_root));
//Ask the user if they want to quit
builder
.setIcon(android.R.drawable.ic_dialog_alert)
.setTitle(R.string.quit)
.setMessage(R.string.really_quit)
.setPositiveButton(R.string.yes, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
//Stop the activity and pause media player
mainSound.pause();
MainActivity.this.finish();
}
})
.setNegativeButton(R.string.no, null)
.setView(dailogLayout);
public boolean onKeyDown(int keyCode, KeyEvent event) {
//Handle the back button
if(keyCode == KeyEvent.KEYCODE_BACK) {
builder.show();
return true;
}
else {
return super.onKeyDown(keyCode, event);
}
}
我本来可以在这里写一个更详细的答案,但是谷歌写的这个教程比我写的好得多:只需转到,然后转到创建一个自定义对话框。
这可能是谷歌为Android编写的最好的教程之一。谢谢,我查过了,非常有用。非常感谢。没问题,很高兴能帮上忙。
LayoutInflater inflater = getLayoutInflater();
View dialoglayout = inflater.inflate(R.layout.dialog_layout, (ViewGroup) findViewById(R.id.dialog_layout_root));
//Ask the user if they want to quit
builder
.setIcon(android.R.drawable.ic_dialog_alert)
.setTitle(R.string.quit)
.setMessage(R.string.really_quit)
.setPositiveButton(R.string.yes, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
//Stop the activity and pause media player
mainSound.pause();
MainActivity.this.finish();
}
})
.setNegativeButton(R.string.no, null)
.setView(dailogLayout);
public boolean onKeyDown(int keyCode, KeyEvent event) {
//Handle the back button
if(keyCode == KeyEvent.KEYCODE_BACK) {
builder.show();
return true;
}
else {
return super.onKeyDown(keyCode, event);
}
}