Dialog第二次点击报错

错误信息如下:

自定义dialog,里面添加了一个自定义布局,一不小心报错。

 java.lang.IllegalStateException: The specified child               already has a parent. You must call removeView() on the child's parent first(自view已经有了父view,你必须先移除父view的子view)

通常我们出现这样的问题会想着找到getparent(),然后移除。但是我试了好久没有找到解决的方法,最后发现我创建
LayoutInflater inflater = getLayoutInflater();这句话的时候由于顺序不对,而导致再次打开dialog,inflater又创建了一次,从而出错。所以我们代码应该如下:

 builder = new AlertDialog.Builder(MainActivity.this);//builder创建
 LayoutInflater inflater = getLayoutInflater();//Inflate创建
 dialog = inflater.inflate(R.layout.dialog, (ViewGroup)findViewById(R.id.dialog));//自定义的布局
 datePicker2 = (DatePicker) dialog.findViewById(R.id.myDatePicker2);//布局里面的控件
 builder.setTitle("选择查询的日期");
 builder.setView(dialog);//添加自定义布局
 builder.setIcon(R.mipmap.ic_launcher);
 builder.show();//显示dialog
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值