Как определить в качестве представления для AlertDialog представление, описанное в файле XML - PullRequest
0 голосов
/ 25 января 2011

Вот моя проблема.Я хотел бы иметь AlertDialog, который имеет заголовок и положительную кнопку.Я хочу описать содержимое AlertDialog в XML-файле (за исключением заголовка / кнопки).Я создал файл с именем dlg_addpwd.xml в моих ресурсах макета.Вот код, который я использую:

  AlertDialog alert = new AlertDialog.Builder(this);  
  alert.setTitle("Password access");
  alert.setView(findViewById(R.layout.dlg_addpwd));
  alert.setPositiveButton("Add", listenAddPwdDlg);
  alert.show();

Я думаю, строка

  alert.setView(findViewById(R.layout.dlg_addpwd));

неправильная, не так ли?Итак, основная идея моего вопроса заключается в следующем: как определить в качестве представления для AlertDialog представление, описанное в файле XML?

Спасибо

Vincent

Ответы [ 2 ]

7 голосов
/ 25 января 2011
    LayoutInflater inflater = (LayoutInflater) 
        getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View layout = inflater.inflate(R.layout.paypaldialog, 
        (ViewGroup) findViewById(R.id.yourDialog));
    AlertDialog.Builder builder = new AlertDialog.Builder(YourClass.this)
        .setView(layout);
    alertDialog = builder.create();
    alertDialog.show();

вот как я это делаю.

1 голос
/ 25 января 2011

См. Мой ответ на Настройка диалогового окна оповещения в Android для создания настраиваемого диалогового окна оповещения.

Основная проблема с вашим кодом заключается в том, что вы не хотите использовать AlertDialog.Builder. Вместо этого вы хотите создать новый Dialog и использовать setContentView() для рендеринга вашего XML.

...