假设我有一个简单的XML布局,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:id="@+id/my_container"
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<LinearLayout android:id="@+id/leftContainer"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Col A - Text 1"
/>
</LinearLayout>
<LinearLayout android:id="@+id/rightContainer"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Col B - Text 1"
/>
</LinearLayout>
</LinearLayout>
然后我想将TextView添加到rightContainer LinearLayout。我目前正在这样做,但未成功:
LinearLayout container = (LinearLayout) findViewById(R.id.rightContainer);
TextView textToAdd = new TextView(this);
textToAdd.setText("Col B - Text 2");
container.addView(textToAdd);
我看过LayoutInflater,但我不确定如何在这里使用它。任何帮助将不胜感激,谢谢!如果我尝试调用setContentView(容器),我会收到强制关闭错误。
答案 0 :(得分:1)
如果您使用的是findViewById(),请不要调用setContentView(),然后该视图已经在您当前设置的内容中。
添加视图效果很好。所有布局XML都是对要创建和添加到层次结构的视图的描述。确保在添加视图时传递正确的布局参数 - 此处由于容器是LinearLayout,您需要LinearLayout.LayoutParams。
您没有说您的代码以何种方式“不成功”,因此很难进一步提供帮助。
您还可以使用hierarchyviewer查看视图层次结构中实际发生的情况。