如何访问android xml布局文件中包含的视图中的元素?

时间:2012-07-03 08:07:35

标签: android android-layout

我创建了一个布局,其中包含了一个android布局:

<include
    layout="@android:layout/simple_list_item_multiple_choice" />

一旦我的整个视图被夸大,我如何访问simple_list_item_multiple_choice内的元素?我想有一个TextView和一个CheckBox,我应该可以使用但它们的ID是什么?

编辑: 我需要多次充气吗?

3 个答案:

答案 0 :(得分:2)

你可以这样做:

CheckedTextView ctv = (CheckedTextView)findViewById(android.R.id.text1);

答案 1 :(得分:2)

我通过向@+id语句提供<include/>来完成此类任务。所以对于像你上面的例子我会写...

  <include
  android:id="@+id/listItemMultiChoiceWrapper"
  layout="@android:layout/simple_list_item_multiple_choice" />

然后,您可以通过写入您的活动/片段级别(您设置包含<include/>的视图的位置)来访问 text1 字段

  final CheckedTextView ctv = (CheckedTextView) findViewById(id.listItemMultiChoiceWrapper).findViewById(id.text1);

如果这不起作用,那么请检查混淆情况的重复ID(Lint也应该选择这些)。

答案 2 :(得分:1)

这是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"
/>

我想你可以从这里处理它。