Настройка диалога оповещения - PullRequest
3 голосов
/ 17 января 2012

Я только что добавил диалог оповещения, который появляется при нажатии кнопки «Назад». Я полагаю, он настроен на оповещение Android по умолчанию. Есть ли способ настроить внешний вид диалогового окна с предупреждением, например, изменить фон или установить рисование на фон? Я новичок в этом, поэтому я не уверен, что делать. Спасибо, и мой код ниже, который я использовал для диалога предупреждения.

Диалог оповещений:

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);
        }

    }

Ответы [ 3 ]

3 голосов
/ 17 января 2012

Как это ..

Создайте свой 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);

EDIT:

Вы должны изменить свой код на что-то вроде этого ... Создайте 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);
    }

}
1 голос
/ 17 января 2012

Я бы написал более подробный ответ здесь, но Google написал этот урок гораздо лучше, чем мог бы: просто перейдите к http://developer.android.com/guide/topics/ui/dialogs.html, и перейдите к Создание пользовательского диалога .Это, вероятно, один из лучших учебников, написанных Google для Android.

0 голосов
/ 17 января 2012

, как создать CustumDialog, объясняется в Документах Android здесь: http://developer.android.com/guide/topics/ui/dialogs.html В нижней части страницы находится пункт «Создание настраиваемого диалога».

...