警报对话框自定义
问题描述:
我刚刚添加了一个警报对话框,当单击后退按钮时出现。它被设置为我相信的默认安卓警报。有没有办法自定义警告对话框的外观如改变背景或将drawable设置为背景?我是新手,所以我不知道该怎么做。谢谢,我的代码低于我用于警报对话框。警报对话框自定义
警告对话框:
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);
}
}
答
这样的..
创建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"
>
然后你可以用下面的建设者设置您的布局:
LayoutInflater inflater = getLayoutInflater();
View dialoglayout = inflater.inflate(R.layout.dialog_layout, (ViewGroup) findViewById(R.id.dialog_layout_root));
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setView(dialoglayout);
编辑:
你应该重新安排你的代码到这样的东西... 创建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);
}
}
答
如何创建一个CustumDialog在Android文档这里解释:http://developer.android.com/guide/topics/ui/dialogs.html 在你可以找到一个名为“创建自定义对话框”点页面BUTTOM。
答
我会一直在这里写了一个更详细的答案,但谷歌写这篇教程更好的比我能:只是去http://developer.android.com/guide/topics/ui/dialogs.html,和请转至创建自定义对话框。 这可能是谷歌为Android写的最好的教程之一。
+0
谢谢,我检查了它是非常有帮助的。 – 2012-01-17 01:57:18
在我的生成器中,我会放底部代码? – 2012-01-17 00:40:10
查看我的编辑 – 2012-01-17 00:59:54
非常感谢。那样做了。 – 2012-01-17 01:57:39