2

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

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

一旦我的整个视图被夸大了,我怎样才能访问里面的元素simple_list_item_multiple_choice?我想有一个 TextView 和一个 CheckBox 我应该可以使用,但它们的 id 是什么?

编辑:我需要充气不止一件事吗?

4

3 回答 3

2

您可以这样做访问它:

CheckedTextView ctv = (CheckedTextView)findViewById(android.R.id.text1);
于 2012-07-03T08:14:19.987 回答
2

我通过提供声明来完成这些@+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);

If that doesn't work then check for duplicate ids confusing the situation (Lint should pick these up too).

于 2012-07-03T08:26:13.323 回答
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"
/>

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

于 2012-07-03T08:12:40.480 回答