Android: пользовательский AlertDialog

Я создал пользовательский alerttdialog с помощью следующего кода:

AlertDialog.Builder builder;
AlertDialog alertDialog;

LayoutInflater inflater = (LayoutInflater)ActivityName.this.getSystemService(LAYOUT_INFLATER_SERVICE);
View layout = inflater.inflate(R.layout.custom_layout,(ViewGroup)findViewById(R.id.layout_root));

                builder = new AlertDialog.Builder(getParent());
                builder.setView(layout);
                alertDialog = builder.create();
                alertDialog.show();

Проблема в том, что всплывающее окно окружено фоном диалога по умолчанию, имеющим собственное пустое пространство заголовка (так как заголовок не установлен). Как мне это убрать. Я пытался поставить пользовательский стиль через ContextThemeWrapper лайк builder = new AlertDialog.Builder(new ContextThemeWrapper(getParent(), R.style.CustomDialogTheme));

Но это не работает. Как я могу это сделать?!!! Заранее спасибо. Пользовательский стиль XML приведен ниже:

<style name="CustomDialogTheme" parent="android:style/Theme.Dialog.Alert">
            <item name="android:windowIsFloating">false</item>
            <item name="android:windowNoTitle">true</item>
        </style>

Это вывод на эмулятор

2 ответа

Решение

Использовать следующее

Dialog dialog = new Dialog(this, android.R.style.Theme_Translucent_NoTitleBar);

Раздуйте свой макет и установите вид содержимого диалога и

dialog.setContentView(view);
AlertDialog dialog = new AlertDialog.Builder(this)
.setView(getLayoutInflater().inflate(R.layout.custom_dialog, null))
.create();

Для прослушивания событий пользовательского интерфейса:

View view = getLayoutInflater().inflate(R.layout.custom_dialog, null);
Button btn = (Button)view.findViewById(R.id.the_id_of_the_button);
btn.setOnClickListener(blah blah);
AlertDialog dialog = new AlertDialog.Builder(this)
  .setView(view)
  .create();
Другие вопросы по тегам