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);

それが機能しない場合は、状況を混乱させる重複 ID をチェックします (Lint はこれらも検出する必要があります)。

于 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 に答える