Run as android application后弹出如上界面:
鼠标点击后,界面弹出:
LOGCAT打印如下异常:
02-16 06:14:12.589: E/InputEventReceiver(798): Exception dispatching input event.
02-16 06:14:12.589: E/MessageQueue-JNI(798): Exception in MessageQueue callback: handleReceiveCallback
02-16 06:14:12.734: E/MessageQueue-JNI(798): java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
02-16 06:14:12.734: E/MessageQueue-JNI(798): at android.view.ViewGroup.addViewInner(ViewGroup.java:3378)
02-16 06:14:12.734: E/MessageQueue-JNI(798): at android.view.ViewGroup.addView(ViewGroup.java:3249)
02-16 06:14:12.734: E/MessageQueue-JNI(798): at android.view.ViewGroup.addView(ViewGroup.java:3225)
代码如下:
//生成一个Layoutinflater对象
LayoutInflater layoutInflater = LayoutInflater.from(this.getContext());
//使用LayoutInflater对象根据一个布局文件生成一个View对象
View layoutView = layoutInflater.inflate(R.layout.dialog, null);
//从生成好的TextView中,取出相应的控件
TextView textView = (TextView)layoutView.findViewById(R.id.usedTextid);
//设置TextView的内容
textView.setText(sb.toString());
//生成一个对话框的Builder对象
AlertDialog.Builder builder = new AlertDialog.Builder(this.getContext());
//设置对话框索要显示的内容
builder.setView(textView);
//生成对话框对象并将其显示出来
AlertDialog dialog = builder.create();
dialog.show();
布局文件如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<TextView
android:id="@+id/usedTextid"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello_world"/>
</LinearLayout>
我也遇到过这个问,基本意思是,view已经有父view。不能简单的把它放到另一个容器里。只能通过remove释放掉才能用。
如何remove?能具体点吗 我在代码里试了好几个remove也不行啊
请问remove方法怎么用啊
@老_歪: 将builder.setView(textView);中的textView改成layoutView就行了,因为textView只是layoutView中的文本显示,但不是真正的layout布局。
请问这个问题你解决了吗,急求答案