启动器活动中的自定义对话框覆盖活动布局

时间:2017-12-21 18:17:50

标签: java android layout dialog onclicklistener

我的启动器活动中有一个对话框需要一些用户输入并显示它我在onCreate()中有这个代码......

 final Dialog dialog = new Dialog(this);
 dialog.setContentView(R.layout.dialog);
 DialogBinding dialogBinding = DataBindingUtil.setContentView(this, R.layout.dialog);
 popupBinding.dialogButton.setOnClickListener(new View.OnClickListener() {
       @Override
       public void onClick(View view) {
           dialog.dismiss();
       }
   });
 dialog.show();

对话框按钮有一个onClick侦听器可以关闭它,但为了做到这一点,必须将对话框声明为final。以前(当此活动不是启动器时),我将对话框声明为实例变量,但这会导致错误。

private Dialog dialog = new Dialog(this); 

但是,在onCreate方法中声明对话框会导致启动器活动的布局被对话框替换,以便对话框显示在其自身的副本上。

Launcher Activity with dialog

我不确定为什么这样做,但我想知道是否有办法防止这种情况发生。谢谢!

1 个答案:

答案 0 :(得分:0)

这会将对话框布局设置为您的活动的内容视图。

DialogBinding dialogBinding = DataBindingUtil.setContentView(this, R.layout.dialog);

所以你将你的活动与对话混合在一​​起。

对于您的活动,这应该类似于

MyActivityBinding activityBinding = DataBindingUtil.setContentView(this, R.layout.my_activity);