我创建了一个布局,我包括它里面的机器人布局:如何访问android xml布局文件中的包含视图中的元素?
<include
layout="@android:layout/simple_list_item_multiple_choice" />
一旦我的整个观点是夸大我怎么能访问simple_list_item_multiple_choice
里面的元素?我想有一个TextView和CheckBox,我应该可以使用,但他们的ID是什么?
编辑: 我需要膨胀不止一件事吗?
我创建了一个布局,我包括它里面的机器人布局:如何访问android xml布局文件中的包含视图中的元素?
<include
layout="@android:layout/simple_list_item_multiple_choice" />
一旦我的整个观点是夸大我怎么能访问simple_list_item_multiple_choice
里面的元素?我想有一个TextView和CheckBox,我应该可以使用,但他们的ID是什么?
编辑: 我需要膨胀不止一件事吗?
您可以访问它这样做:
CheckedTextView ctv = (CheckedTextView)findViewById(android.R.id.text1);
这是Android的SDK为simple_list_item_multiple_choice代码:
<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
android:layout_width="match_parent"
android:layout_height="?android:attr/listPreferredItemHeight"
android:textAppearance="?android:attr/textAppearanceListItem"
android:gravity="center_vertical"
android:checkMark="?android:attr/listChoiceIndicatorMultiple"
android:paddingLeft="8dip"
android:paddingRight="8dip"
/>
我想你可以从这里处理。
我通过提供@+id
到<include/>
语句完成这样的任务。因此,对于像你上面的例子我会写......
<include
android:id="@+id/listItemMultiChoiceWrapper"
layout="@android:layout/simple_list_item_multiple_choice" />
您可以然后在您的活动写/片段级访问的text1场(在任何你设置包含<include/>
视图)
final CheckedTextView ctv = (CheckedTextView) findViewById(id.listItemMultiChoiceWrapper).findViewById(id.text1);
如果这样做不起作用,那么检查重复的id是否会混淆这种情况(Lint也应该选择这些)。
这非常奇怪,因为android.R.id包含Android操作系统用来引用各种默认项目的所有公共可用的id。每个Android应用程序都应该可以访问它。 –