无法从View转换为EditTextPreference

时间:2012-08-02 11:35:20

标签: android

我已经定义了我的设置活动的布局,如下所示:

<?xml version="1.0" encoding="utf-8"?>

<PreferenceCategory 
    android:title="Second Category"
    android:key="second_category">

    <EditTextPreference
        android:id="@+id/pcnSetting"
        android:key="pcn"
        android:title="Set Canton Digits" 
        android:summary="Define your canton digits"
        android:dialogTitle="Set Canton Digits"
        android:dialogMessage="Please add your canton digits"
        android:inputType="number"
        android:imeOptions="actionDone"
        android:maxLength="4"/>

</PreferenceCategory>

我想将EditTextPreference导入我的java代码,只是为了确保用户输入的内容至少为4位数。

这就是我尝试将EditTextPreference导入java

的方法
    canton = (EditTextPreference)findViewById(R.id.pcnSetting); 

Eclipse给了我这个错误:

Cannot cast from View to EditTextPreference

为什么会这样?如何检查用户输入的内容是否至少4 int's

2 个答案:

答案 0 :(得分:7)

EditTextPreference不是View,它是首选项。因此,您必须在PreferenceActivity中使用findPreference()。然后,您可以执行EditTextPreference.getEdittext以从此首选项中获取视图

答案 1 :(得分:1)

因为EditTextPreference不扩展View,所以它扩展了DialogPreference

http://developer.android.com/reference/android/preference/EditTextPreference.html