警报对话框自定义

问题描述:

我刚刚添加了一个警报对话框,当单击后退按钮时出现。它被设置为我相信的默认安卓警报。有没有办法自定义警告对话框的外观如改变背景或将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); 
    } 

} 
+0

在我的生成器中,我会放底部代码? – 2012-01-17 00:40:10

+0

查看我的编辑 – 2012-01-17 00:59:54

+0

非常感谢。那样做了。 – 2012-01-17 01:57:39

如何创建一个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