在activity中,点击一个button的时候,就创建一个对话框,当点击第二次的时候,本想再次弹出那个对话框,但是没想到就报错了:
意思是这个子view 已经有个父view了,你现在要使用的话,必须把子view从父view中移除掉。
- /*
- * 新建对话框,
- */
- dialog = new AlertDialog.Builder(this).setTitle("选择时间")
- .setPositiveButton("确定", new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- // TODO Auto-generated method stub
- hour.setText(hours.getHour() + ";小时");
- min.setText(mins.getMin() + ";分鐘");
- daytxt.setText(day.getDay() + ";天數");
- /**
- * 取得view的父组件,然后移除view
- */
- ((ViewGroup) view.getParent()).removeView(view);
- dialog.dismiss();
- }
- })
- .setNegativeButton("取消", new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- // TODO Auto-generated method stub
- dialog.dismiss();
- }
- });
- dialog.setView(view);
这里,网上的方法很多,我也没看懂。其实,这里只须在对话框消失的时候,移除子view就可以了。
主要是这一句话:
- /**
- * 取得view的父组件,然后移除view
- */
- ((ViewGroup) view.getParent()).removeView(view);
注意:
1.view类里面是没有removeview()这个方法的,只有其子类 viewgroup 才有,所以需要把view转换为它的子类。