我可以在不创建自定义视图的情况下向 preferences.xml 中的组件添加自定义属性吗?
can I add custom attributes to components in preferences.xml without making custom views?
我正在尝试将具有某种自定义属性的状态或数据存储到 preferences.xml 中的现有组件,以便稍后在代码中引用和读取。如果可能的话,我想避免为所有这些组件创建自定义视图,因为这意味着每次有人想要向新组件添加属性时我都必须创建一个新的自定义视图。
例如,我想对某些组件添加mycustomatt:forced="true"
,如下所示。
这是否可以在不创建自定义视图的情况下实现,或者是否有更好的替代解决方案?
<EditTextPreference
android:defaultValue="300"
android:inputType="number"
android:key="coffeekey"
mycustomatt:forced="true"
android:persistent="true"
android:title="@string/coffee" />
<CheckBoxPreference
android:defaultValue="false"
android:key="highprio"
mycustomatt:forced="true"
android:persistent="true"
android:summary="@string/highpriocoffeedesc"
android:title="@string/highpriocoffee" />
<RingtonePreference
android:defaultValue="default"
android:key="notiftone"
mycustomatt:forced="true"
android:persistent="true"
android:ringtoneType="notification"
android:summary="@string/notitonesum"
android:title="@string/notitone" />
正如@SiddarthJain 在评论中所说的那样 - 在不创建自定义视图的情况下执行此操作的最佳且唯一方法似乎是在我的组件中使用 android:tag
,示例如下
<CheckBoxPreference
android:defaultValue="false"
android:key="highprio"
android:tag="forced"
android:persistent="true"
android:summary="@string/highpriocoffeedesc"
android:title="@string/highpriocoffee" />
我正在尝试将具有某种自定义属性的状态或数据存储到 preferences.xml 中的现有组件,以便稍后在代码中引用和读取。如果可能的话,我想避免为所有这些组件创建自定义视图,因为这意味着每次有人想要向新组件添加属性时我都必须创建一个新的自定义视图。
例如,我想对某些组件添加mycustomatt:forced="true"
,如下所示。
这是否可以在不创建自定义视图的情况下实现,或者是否有更好的替代解决方案?
<EditTextPreference
android:defaultValue="300"
android:inputType="number"
android:key="coffeekey"
mycustomatt:forced="true"
android:persistent="true"
android:title="@string/coffee" />
<CheckBoxPreference
android:defaultValue="false"
android:key="highprio"
mycustomatt:forced="true"
android:persistent="true"
android:summary="@string/highpriocoffeedesc"
android:title="@string/highpriocoffee" />
<RingtonePreference
android:defaultValue="default"
android:key="notiftone"
mycustomatt:forced="true"
android:persistent="true"
android:ringtoneType="notification"
android:summary="@string/notitonesum"
android:title="@string/notitone" />
正如@SiddarthJain 在评论中所说的那样 - 在不创建自定义视图的情况下执行此操作的最佳且唯一方法似乎是在我的组件中使用 android:tag
,示例如下
<CheckBoxPreference
android:defaultValue="false"
android:key="highprio"
android:tag="forced"
android:persistent="true"
android:summary="@string/highpriocoffeedesc"
android:title="@string/highpriocoffee" />