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ユーザーが少なくとも 4 桁と最大 4 桁を入力したことを確認するために、Java コードにをインポートしたいと考えています。

これは、EditTextPreferenceJavaに取得しようとする方法です

    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 に答える