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