我想使用循环将布局多次充气到另一个布局。当我给TextView或任何其他单个视图充气时,java很好。但我想夸大整个布局。我使用什么方法,因为以下代码不起作用。 (就像我说的,循环和一切都很好,它只是我不能给整个布局充气。我只知道如何给一个简单的视图充气。)
View childInflatedView = (View) theInflater.inflate(R.id.restaurant_displayed_on_list, null);
linLayout.addView(childInflatedView);
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="30dp"
android:orientation="horizontal"
android:background="@drawable/gradient_bg_hover"
android:id="@+id/restaurant_displayed_on_list" >
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="0dp"
android:layout_weight="6"
android:layout_height="fill_parent"
android:text="this is the inflated text"
android:textColor="#990099"
android:textSize="20dp"
android:gravity="center_horizontal"
/>
<Button
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="fill_parent"
android:background= "@drawable/delete"
/>
</LinearLayout>
EDIT1:
正如Matthew所说,我认为解决方案是通过布局资源ID来扩充布局。 我认为问题在于上面没有显示的代码行,因为布局不能转换为TextView:
View categoryInflatedView1 = (View) theInflater.inflate(R.layout.categories_available, null);
((TextView) categoryInflatedView1).setText(category1);
linLayout.addView(categoryInflatedView1);
如何访问布局内的TextView。我需要在充气之前编辑textview。
答案 0 :(得分:2)
您需要传入布局资源ID。将R.id.restaurant_displayed_on_list
替换为R.layout.<name of your layout file here>
,您应该好好去。
答案 1 :(得分:1)
因此,这不起作用的原因是2倍。
您只需通过Mathew
所述的布局资源ID来扩充布局View childInflatedView = (View) theInflater.inflate(R.layout.restaurant_available, null);
由于将布局转换为TextView,我在日志中发现了一个额外的错误 相反,我必须使用此代码使其工作(布局变量然后按ID查找视图):
((TextView) childInflatedView.findViewById(R.id.restaurant_displayed_on_list)).setText(currentlyDelRest1);
虽然这个答案是正确的,但我会将接受的答案分配给Mathew,因为根据问题中提供的信息,他的回答是正确的。谢谢你的帮助
答案 2 :(得分:0)
使用<include>
标记。它包含现有的XML布局。例如,添加以下两行将包括父布局中的另外两个布局:
<include android:id="@+id/cell1" layout="@layout/workspace_screen" />
<include android:id="@+id/cell2" layout="@layout/workspace_screen" />
只需要布局属性。没有android命名空间前缀的此属性是对要扩展的布局文件的引用。您还可以使用android:id
指定所包含布局的根视图的ID;如果定义了布局,它也会覆盖包含布局的id。同样,您可以覆盖所有布局参数。