2013-09-30 3 views
0

Я хочу создать простую деятельность, которая отображает диалог. Я имею в манифесте:Как не показать родительскую активность после выхода Theme.Dialog

android:theme="@android:style/Theme.Dialog 

и в методе OnCreate() деятельности:

LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    View layout = inflater.inflate(R.layout.activity_dialog, (ViewGroup) findViewById(R.id.layout), false); 

    AlertDialog.Builder builder = new AlertDialog.Builder(this) 
    .setView(layout); 

    AlertDialog alertDialog = builder.create(); 
    alertDialog.show(); 

Когда я запускаю приложение, оно показывает правильно диалоговое окно, однако при нажатии кнопки назад ключ, он показывает мне родительскую активность, как в образе

enter image description here

то, что я хочу достичь только показать диалог и Whe n пользователь выходит из диалогового окна, приложение завершает работу. После этого я не хочу, чтобы это всплывающее окно всплыло посередине. Как я могу это сделать?

Спасибо!

ответ

2

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

Для этого вы можете установить OnDismissListener() на вашем AlertDialog и в нем называют finish(), чтобы закрыть Activity внутри onDismiss(). Вы просто установить

Dialog Interface OnDismiss

Однако то, что вы делаете в своей manifest.xml устанавливает сам Activity как имеющий Dialog theme. Это означает, что вам не нужно AlertDialog. Вы можете просто установить R.layout.activity_dialog.xml в setContentView() из ваших Activity в onCreate(), и это должно дать вам тот же тип эффекта без необходимости в AlertDialog, то вы можете позвонить в finish()onBackPressed() вашего Activity и везде, где вам нужно.

+0

Вы абсолютно правы! Не имеет смысла раздувать макет в действии и настраивать Theme.Dialog в манифесте xD. Спасибо приятель – santidoo

Смежные вопросы