我的启动器活动中有一个对话框需要一些用户输入并显示它我在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方法中声明对话框会导致启动器活动的布局被对话框替换,以便对话框显示在其自身的副本上。
我不确定为什么这样做,但我想知道是否有办法防止这种情况发生。谢谢!
答案 0 :(得分:0)
这会将对话框布局设置为您的活动的内容视图。
DialogBinding dialogBinding = DataBindingUtil.setContentView(this, R.layout.dialog);
所以你将你的活动与对话混合在一起。
对于您的活动,这应该类似于
MyActivityBinding activityBinding = DataBindingUtil.setContentView(this, R.layout.my_activity);