public.xml中的定义链接到哪里?

时间:2010-01-22 17:43:54

标签: android

让我用例子解释......考虑'android.R.layout.simple_list_item_multiple_choice'。它用于创建多选列表。但我找到的唯一定义是:

/platform/frameworks/base/core/res/res/values/public.xml:

<public type="layout" name="simple_list_item_multiple_choice" id="0x01090010" />

/platform/frameworks/base/api/current.xml:

<field name="simple_list_item_multiple_choice"
 type="int"
 transient="false"
 volatile="false"
 value="17367056"
 static="true"
 final="true"
 deprecated="not deprecated"
 visibility="public"
>

但实际布局在哪里定义?创建多选列表时,我会看到复选框,它来自哪里?

1 个答案:

答案 0 :(得分:2)

查看$ANDROID_HOME/platforms/$YOUR_PLATFORM/data/res/layout/simple_list_item_multiple_choice.xml,其中$ANDROID_HOME是您安装SDK的地方,$YOUR_PLATFORM是您感兴趣的平台版本(例如android-2.1)。

例如,对于Android 2.1,布局为:

<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/text1"
    android:layout_width="fill_parent"
    android:layout_height="?android:attr/listPreferredItemHeight"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:gravity="center_vertical"
    android:checkMark="?android:attr/listChoiceIndicatorMultiple"
    android:paddingLeft="6dip"
    android:paddingRight="6dip"
/>