LightLu

秋水时至,百川灌河

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
阅读更多
版权声明:本文为博主原创文章,转载时请著名出处:http://blog.csdn.net/dg_summer https://blog.csdn.net/DG_summer/article/details/52385570
个人分类: 遇到的bugs
所属专栏: android进阶之路
上一篇Okhttp访问https 12306
下一篇12306图片验证码效果实现
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭