preferences.xml和扩展DialogPreference

时间:2014-08-28 18:09:16

标签: java android xml android-preferences

我正在尝试扩展 DialogPreference ,这样我就可以拥有一个 NumberPicker 喜好。我一直在读:

http://developer.android.com/guide/topics/ui/settings.html#Custom

但是我正在点击'错误,夸大NumberPickerReference'消息。我想我知道 为什么,但我不确定如何解决它。

我的 preferences.xml 如下所示:

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
    <CheckBoxPreference
        android:key="pref_alertsEnabled"
        android:title="@string/alert_enable"
        android:summary="@string/alert_enable_desc"
        android:defaultValue="true" />

    <NumberPickerPreference 
        android:key="perf_Timer" 
        android:title="@string/timer" 
        android:negativeButtonText="@android:string/cancel" 
        android:dialogTitle="@string/timer" 
        android:summary="@string/timer_desc" 
        android:dialogMessage="@string/timer_desc" 
        android:positiveButtonText="@android:string/ok"/>

</PreferenceScreen>

在我的项目 src 文件夹中,我有 NumberPickerReference.java。我认为我缺少的是如何告诉Android在哪里找到 NumberPickerReference类

当读入 preferences.xml 时,我猜它会去寻找 NumberPickerReference类,但却找不到它。

我是否需要指定在哪里找到 NumberPickerReference.class ?如果是,我该怎么做?

BTW,如果我从 preferences.xml

中删除<NumberPickerReferecnes>项,该应用程序运行正常

1 个答案:

答案 0 :(得分:1)

只需添加该首选项的路径:

com.your.package_name.and_path.NumberPickerPreference

E.g。

<com.example.myapp.preferences.NumberPickerPreference
    android:key="perf_Timer" 
    android:title="@string/timer" 
    android:negativeButtonText="@android:string/cancel" 
    android:dialogTitle="@string/timer" 
    android:summary="@string/timer_desc" 
    android:dialogMessage="@string/timer_desc" 
    android:positiveButtonText="@android:string/ok"/>