对话框子视图Android自定义Dialog二次调用报错解决方法:The specified child already has a parent. You must call removeView(...

上班之余抽点时间出来写写博文,希望对新接触的朋友有帮助。明天在这里和大家一起学习一下对话框子视图

    明天自定义了一个AlertDialog对话框,第一次点击时畸形,但第二次调用时会现错出误:java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.

    

    错出的代码为:

    

//窗口构造器
	synchronized protected View GetTextEntryView() {
		LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
		switch (Dialog_TYPE) {
			case DIALOG_TYPE_EXIT://出退对话框
				return inflater.inflate(R.layout.datalist, null);
			default:
				break;
		}
		return null;
	}
    每日一道理
青春是用意志的血滴和拼搏的汗水酿成的琼浆——历久弥香;青春是用不凋的希望和不灭的向往编织的彩虹——绚丽辉煌;青春是用永恒的执著和顽强的韧劲筑起的一道铜墙铁壁——固若金汤。

    而示提的大致意思是说为一个子视图指定了多个父视图。由此可以推断出,在第二次点击按钮弹出对话框时,子视图与第一次点击时的子视图是同一个象对,而父视图经已不再是同一个象对了。

    

    解决方法非常简略,只需要重写对话框的show()方法便可:

    

@Override//重写show()方法
	public AlertDialog show() {
		//再次绑定View
		setView(GetTextEntryView());
		return super.show();
	}

    

文章结束给大家分享下程序员的一些笑话语录: 这个世界上只有10种人:懂得二进制的和不懂得二进制的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值