Настройка нижнего колонтитула AlertDialog - PullRequest
2 голосов
/ 16 августа 2011

Я хочу настроить нижний колонтитул AlertDialog, я имею в виду место, где расположены кнопки.

Я пытался создать отдельный макет и накачать его перед вызовом builder = AlertDialog.Builder();

вот так:

AlertDialog.Builder builder;
        AlertDialog alertDialog;

        Context mContext = activity;
        LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(mContext.LAYOUT_INFLATER_SERVICE);
        View layout = inflater.inflate(R.layout.customdialog, (ViewGroup) activity.findViewById(R.id.layout_root));
        TextView dialogTitle = (TextView) layout.findViewById(R.id.dilaogTitle);
        dialogTitle.setText("Alert Dialog Test");

        TextView closeConfirmationQuestion = (TextView) layout.findViewById(R.id.textview);
        closeConfirmationQuestion.setText("Test for AlertDialog");


        builder = new AlertDialog.Builder(activity).setCancelable(false).setPositiveButton("Yes"), new DialogInterface.OnClickListener()
        {
            public void onClick(DialogInterface dialog, int id)
            {
                //Do something
            }
        }).setNegativeButton("No"), new DialogInterface.OnClickListener()
        {
            public void onClick(DialogInterface dialog, int id)
            {
                dialog.cancel();
            }
        });
        builder.setView(layout);
        alertDialog = builder.create();
        alertDialog.setView(layout, 0, 0, -3, -3);
        alertDialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
        alertDialog.show();

Но я мог настроить только содержимое моего AlertDialog, но не нижний колонтитул и кнопки.Вот как это выглядит:

enter image description here

Мне нужно знать, как настроить кнопки и их держатель, я имею в виду нижний колонтитул AlertDialog, возможно, поставить цвет или изображение какего фон вместо стандартного «серого» цвета, а также установите настраиваемый фон для кнопок.

Спасибо.

Ответы [ 5 ]

4 голосов
/ 16 августа 2011

Если вы хотите изменить AlertDialog с его заданного формата, я бы порекомендовал расширить вашу собственную версию Dialog и использовать ее.

2 голосов
/ 16 августа 2011

Вы также можете использовать новый Activity и установить тему на android:theme="@android:style/Theme.Dialog" в манифесте Android. Это позволит вам использовать собственный файл макета XML.

1 голос
/ 16 августа 2011

Методы setNegativeButton() и setPositiveButton() размещают кнопки в предопределенных местах.Это причина того, что вы можете настроить все, кроме расположения кнопок, когда вы надуваете макет на AlertDialog.

. Возможны следующие варианты:

  1. Не использоватьsetNegativeButton() или такие методы - вместо этого добавьте свои собственные пользовательские кнопки в свой макет.Это означает, что вам нужно будет прослушивать определенные нажатия кнопок.Почему-то это решение мне не нравится, поскольку AlertDialog не предназначен для использования таким образом
  2. Используйте настраиваемый диалог, как упомянуто в других ответах (объяснено здесь ).

@ Предложение Фила выше выглядит интересным.Я еще не пробовал.

1 голос
/ 16 августа 2011

В таком случае, почему бы не использовать собственный диалог вместо alerttdialog?

0 голосов
/ 17 августа 2011

Кроме того, когда вы расширяете диалог, вы можете настроить его так, чтобы он не использовал заголовок по умолчанию (для того, чтобы иметь согласованный / полностью настроенный внешний вид). Это можно сделать с помощью:

"dialog.requestWindowFeature (Window.FEATURE_NO_TITLE);"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...