我创建了一个布局,并在其中包含了一个 android 布局:
<include
layout="@android:layout/simple_list_item_multiple_choice" />
一旦我的整个视图被夸大了,我怎样才能访问里面的元素simple_list_item_multiple_choice
?我想有一个 TextView 和一个 CheckBox 我应该可以使用,但它们的 id 是什么?
编辑:我需要充气不止一件事吗?
我创建了一个布局,并在其中包含了一个 android 布局:
<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);
我通过提供声明来完成这些@+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).
这是 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"
/>
我想你可以从这里处理它。