AlertDialog setContentView принимает экран - PullRequest
2 голосов
/ 31 августа 2010

Возможно, я упускаю что-то очевидное здесь, но мне трудно установить собственное представление для тела AlertDialog. Вот что я делаю, чтобы установить пользовательский вид:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    this.setContentView(View.inflate(getContext(), R.layout.dialog_body, null));
}

Вместо установки содержимого тела AlertDialog, представление размещается на весь экран. Как получить представление только для замены тела сообщения AlertDialog?

1 Ответ

2 голосов
/ 31 августа 2010

Вы устанавливаете вид деятельности, вызывая setContentView, поэтому он занимает весь экран. Вы также делаете это в методе onCreate, который, как я полагаю, является действием, вам нужно сделать это методом onCreateDialog.

Вот ссылка на документы и пример.

public Dialog onCreateDialog(int id) {

            Dialog dialog = null;
            AlertDialog.Builder builder = new AlertDialog.Builder(app);
            AlertDialog alert = null;

            builder.setTitle("A title") 
                   .setCancelable(true)
                   .setView(myView);
                alert = builder.create();
                return alert;

}
...