3

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

<?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

4

2 回答 2

7

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

于 2012-08-02T11:39:39.673 回答
1

因为 EditTextPreference 没有扩展 View,它扩展了 DialogPreference

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

于 2012-08-02T11:37:33.163 回答