我在更改布局模式时遇到了错误,改变了android中的布局模式。
我的活动在这里有一个onCreate代码..
LayoutInflater inflater = (LayoutInflater) this
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View v=inflater.inflate(R.layout.layout_chart_area, null);
LinearLayout l = (LinearLayout) v.findViewById(R.id.chart_area);
TextView textTitle = (TextView) v.findViewById(R.id.text_title_chart_area);
textTitle.setText(titleChart);
View i = chart;
if (chart instanceof ImageView) {
l.addView(i, new LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.FILL_PARENT));
} else {
l.addView(i);
}
setContentView(v);
我已经夸大了它,我已经尝试直接使用setContentView但结果相同它在代码下面返回错误:
06-29 11:23:22.413: ERROR/AndroidRuntime(8182): Caused by: java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
我的xml布局在这里:
<?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:background="@drawable/back" android:orientation="vertical">
<TextView android:layout_width="fill_parent"
android:layout_margin="10dip" android:layout_height="wrap_content"
android:textColor="#000000" android:text="Judul dari Chart yang akan ditampilkan"
android:id="@+id/text_title_chart_area" android:gravity="center_horizontal"></TextView>
<LinearLayout android:layout_height="wrap_content"
android:orientation="vertical" android:layout_width="fill_parent"
android:id="@+id/chart_area">
</LinearLayout>
</LinearLayout>
答案 0 :(得分:0)
我怀疑问题是您的chart
视图持续的时间比您的活动长,因此被多次添加到父级而不会在父级被销毁时被删除。如果没有看到更多的代码,很难确定。
您可以尝试添加删除它的onDestroy()
方法:
@Override
void onDestroy()
{
((LinearLayout)findViewById(R.id.chart_area)).removeView( chart );
}
或者,您可以尝试在chart
中实例化新的onCreate()
。