这似乎是一个简单的问题,我应该能够轻松找到,但我很难理解如何为Android创建可重用的UI组件。具体来说,我正在尝试创建这个片段,我将其用于可重复使用的组件,以使代码更小。
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:paddingBottom="0dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:paddingTop="10dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:textColor="@color/text_normal"
android:id="@+id/my_text_id"
android:text="My field"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:textColor="@color/text_normal"
android:text="My value"
android:id="@+id/my_value_id"/>
</RelativeLayout>
这些就像这样使用
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:background="@color/background_normal"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:paddingBottom="0dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:paddingTop="10dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:textColor="@color/text_normal"
android:id="@+id/my_text_id"
android:text="My field"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:textColor="@color/text_normal"
android:text="My value"
android:id="@+id/my_value_id"/>
</RelativeLayout>
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:paddingBottom="0dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:paddingTop="10dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:textColor="@color/text_normal"
android:id="@+id/my_text_id2"
android:text="My field2"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:textColor="@color/text_normal"
android:text="My value2"
android:id="@+id/my_value_id2"/>
</RelativeLayout>
.... etc ....
</LinearLayout>
</ScrollView>
我希望能够访问这两个文本框,以便在其中添加带有<include />
标记的值到布局中。有谁知道怎么做?
我见过http://developer.android.com/resources/articles/layout-tricks-reuse.html,但我似乎没有看到如何分配同一个字段的多个。
感谢任何帮助。
更新这些用于将TextView放在屏幕左侧,将另一个放在右侧,排列在一起。不确定如何描述它,但这些在ScrollView中使用。
答案 0 :(得分:3)
使用开发人员 http://developer.android.com/resources/articles/layout-tricks-reuse.html
所述的包含标记并找到该布局中的组件就像这样
findViewById(R.id.include03).findViewById(R.id.Spinner01)
inculde03布局中包含组件的名称,spinner01将是包含布局中的组件,也可以是布局中的其他组件。
答案 1 :(得分:2)
使用“include”和“merge”将布局“注入”到现有布局中。一旦包含,您可以像在布局中一样引用视图。
如果您想多次“包含”相同的布局,那么您有两个选择:
a)使用ListView和适配器重复视图 b)在代码中膨胀视图并使用addView()手动添加它们。在扩展每个视图时,可以使用findViewById专门在该视图中定位窗口小部件。