首页 > 解决方案 > 为什么我的字符串数组与 TYPE_CHOICE 的 RestrictionEntry 上的条目和 entryValues 属性不兼容

问题描述

我正在尝试设置托管配置(参考https://developer.android.com/work/managed-configurations#define-configuration),并且在编译时出现以下错误。

AAPT: error: '@arrays/usage_display_values' is incompatible with attribute entries (attr) reference.
AAPT: error: '@arrays/usage_values' is incompatible with attribute entryValues (attr) reference.

基于 TYPE_CHOICE 的上述文档,以及 ListPreference 的文档(https://developer.android.com/reference/android/preference/ListPreference#attr_android:entries),我认为以下内容可以正常工作。

数组.xml

<resources>
    <string-array name="usage_display_values">
        <item>Personal</item>
        <item>Shared</item>
    </string-array>

    <string-array name="usage_values">
        <item>personal</item>
        <item>shared</item>
    </string-array>
</resources>

我的限制:

<restriction
        android:key="restrictionUsage"
        android:title="@string/client_usage_title"
        android:restrictionType="choice"
        android:entries="@arrays/usage_display_values"
        android:entryValues="@arrays/usage_values"
        android:description="@string/client_usage_desc"
        android:defaultValue="personal"
        />

将此与我为测试目的所做的列表首选项进行比较,编译时没有问题。

<ListPreference
        app:entryValues="@array/usage_values"
        app:entries="@array/usage_display_values"
        app:key="pref_usage"
        app:persistent="true"
        app:summary="@string/client_usage_desc"
        app:title="@string/client_usage_title"
        app:defaultValue="personal"
        app:useSimpleSummaryProvider="true"
        app:dependency="pref_override_mdm"/>

当涉及到 TYPE_CHOICE 限制时,这些字符串数组有什么问题?

标签: android

解决方案


推荐阅读