安卓自己定义对话框及The specified child already has a child问题

问题:在android开发过程中,有时会在不同情况下遇到同种问题:The specified child already has
a parent.You must call removeView() on the child‘s parent first.日志中例如以下图所看到的:

分析:意思是这个特定的child已经有一个parent了,假设你要继续使用它,就必须先调用removeView()方法移除它原来的的parent,才干继续你的内容。

举例:在主activity中点击按键弹出自己定义View的对话框

首先:

setContentView(R.layout.main); 
etContentView(R.layout.main

其次

其次:对button进行click监听,click函数里调用对话框函数

1.对话框的处理:新建defView,里面有一个edittext(其它控件的也一样)

  <EditText
        android:id="@+id/filename"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>

2.由于对话框中要调用的控件不在布局文件main.xml中,所以我们必须先调用布局填充类的相关函数找到该布局

LinearLayout def = (LinearLayout) getLayoutInflater().inflate(R.layout.dialog_save_file, null);

3.然后在该布局中找到对应的控件:

edtTxtFileName = (EditText) saveForm.findViewById(R.id.filename);

4.click函数中对话框的建立

AlertDialog.Builder builder = new AlertDialog.Builder(this)
				.setTitle("保存sdcard/sign/").setIcon(R.drawable.save_file)
				.setView(def);//这里给对话框增加了自己定义的内容
</pre><pre name="code" class="java">最后:在对话框本身的按键确定或者取消click响应中增加:
((ViewGroup) saveForm.getParent()).removeView(def);
时间: 2024-11-05 01:51:10

安卓自己定义对话框及The specified child already has a child问题的相关文章

安卓弹出对话框——Alertdialog(一)

首先看各种样式的对话框: 我们看到,Dialog有很多的子类实现,所以我们要定义一个对话框,使用其子类来实例化一个即可,而不要直接使用Dialog这个父类来构造. 二.AlertDialog 今天我们重点要来了解的就是AlertDialog对话框,我们看到,AlertDialog是Dialog的一个直接子类. 使用AlertDialog,我们可以显示一个标题,最多3个按钮操作,以及一组选择框或者是自己定义的弹出框. 这里借用android的官方文档提供的一个图来看看AlertDialog框的组成

安卓应用-自定义对话框

现在要说的是自定义对话框. 常用的对话框有好多网友们整理的资料,对话框大全啊神马的.但是除了常用对话框外,有时候要根据自己的需求定义新的对话框,下面就稍微说一下自定义对话框的一种做法. 1.需要一个对话框内容的xml配置文件game_dialog.xml,这个应该不需要过多解释,基本布局而已. 有几个图片按钮,所以在drawable下面放几张图,嫌麻烦的话,也可以用Button替换,看下效果. 需要说明的是,所有控件的id这里我都用的@id,因为id我都写在了res/values/ids.xml

安卓弹出对话框——AlertDialog(二)

在Android中,启动一个对话框有三种方式: 1.定义一个新的activity,并将其主题设置为对话框风格 2.使用AlertDialog类,并且显示它 3.使用 Android的Dialog类的子类,并且显示它 现在学习AlertDialog.Builder创建各种形式的对话框. 首先,看看启动界面如下: 用土司来显示效果,因为多次用到,所以将其抽象为一个方法. [java] view plaincopy protected void showToast(String string) { T

android-自定义对话框视图及参数传递

一.雏形构建 先给大家看下这小节的效果图: 自定义一个对话框,内容是四个ImageView横排: 1.Dialog布局 根据上图的对话框样式,我们看一下Dialog的布局定义(custom_dialog.xml) [html] view plaincopy <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.c

cocos2dx 安卓退出提示对话框

很多游戏在按返回键退出的时候都会提示“是否要退出游戏?”,然后有“确定”和“返回”的两个按钮,一般来说, 使用安卓底层对话框是最好的选择,可以屏蔽屏幕的其他触摸事件. 使用eclipse打开cocos项目,在org.cocos2dx.lib包下,有Cocos2dxGLSurfaceView.java类,里面有一个 onKeyDown函数来响应键盘事件,在KeyEvent.KEYCODE_BACK下,加入一下代码实现对话框弹出: AlertDialog.Builder builder = new

安卓自己定义View进阶-Canvas之绘制基本形状

Canvas之绘制基本形状 作者微博: @GcsSloop [本系列相关文章] 在上一篇自己定义View分类与流程中我们了解自己定义View相关的基本知识,只是,这些东西依然还是理论,并不能拿来(zhuang)用(B), 这一次我们就了解一些能(zhaung)用(B)的东西. 在本篇文章中,我们先了解Canvas的基本用法,最后用一个小演示样例来结束本次教程. 一.Canvas简单介绍 Canvas我们能够称之为画布,能够在上面绘制各种东西,是安卓平台2D图形绘制的基础,非常强大. **一般来说

安卓自己定义日历控件

尊重作者劳动成果.转载请注明出处:http://blog.csdn.net/baiyuliang2013/article/details/37732149 近期,因工作须要,须要实现自己定义日历控件功能,主要应用于软件中的酒店入住时间选择功能.进入日历后,可选择入住时间,及离开时间,选择完毕后,再次进入日历时.会显示上次选中的结果,默认选择日期是在距当前日期三个月内.三个月以外的均以灰色显示.且不可点击.本篇实现的效果是高仿某软件的界面效果: 某软件界面效果: watermark/2/text/

安卓日期选择对话框

1 Calendar c=Calendar.getInstance(); 2 //直接创建一个DatePickerDialog对话框实例,并显示出来 3 new DatePickerDialog(this, 4 //绑定监听器 5 new DatePickerDialog.OnDateSetListener() { 6 @Override 7 public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {

HTML页面弹出自定义对话框带遮蔽罩(使用JavaScript)

转载:http://blog.sina.com.cn/s/blog_610f47c50100ohe4.html 原理其实很简单:首先绘制弹出的自定义对话框,将其使用display:none隐藏,因为设置为none,其在页面中并不占用空间: 遮蔽罩使用一个div,然后将其宽高设置为整个显示窗口大小,配置其透明度,在将其z-index属性大于主页面的z-index的值,也就是遮蔽层在主页面上方,如此即可 事先隐藏一个div,在需要的时候调出显示既可. <!--以下代码从网上多处学习整合而成,由于来源