0

私はQuietlyCoding NumberPickerを使用しようとしていますが、他に何も見つけていませんが、動作させることができません。ライブラリをプロジェクトとしてインポートしてから、プロジェクトに追加します。

好みのアクティビティ:

public class MainPrefs extends PreferenceActivity{

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        PreferenceManager preferenceManager = getPreferenceManager();
        preferenceManager.setSharedPreferencesMode(MODE_PRIVATE);
        preferenceManager.setSharedPreferencesName("numberPicker.preferences");

        this.addPreferencesFromResource(R.xml.main_preferences);

        this.findPreference("SMSSentLimit").setOnPreferenceChangeListener(new OnPreferenceChangeListener(){
            @Override
            public boolean onPreferenceChange(Preference preference, Object newValue) {
                TrackerService.updateStats(Long.decode(newValue.toString()));
                return true;
            }
        });
    }

}

main_preference.xml

<PreferenceCategory android:title="General" >
    <EditTextPreference
        android:defaultValue="0"
        android:title="@string/SMSSentLimitTitle"
        android:key="SMSSentLimit"
        android:summary="@string/SMSSentLimitSummary" 
        android:inputType="number" />
    <com.michaelnovakjr.numberpicker.NumberPickerPreference
        android:key="demo.preference"
        android:title="Sample Number Picker"
        android:summary="Number picker as a preference"
        picker:defaultValue="15"
        picker:startRange="-50"
        picker:endRange="50" />
</PreferenceCategory>

この方法でプロジェクトをコンパイルすることはできません。プロジェクトをコンパイルするには、次の方法で .xml を編集する必要があります。

    <com.michaelnovakjr.numberpicker.NumberPickerPreference
        android:key="demo.preference"
        android:title="Sample Number Picker"
        android:summary="Number picker as a preference" />

defaultValue、startRange、および endRange を削除すると、この方法でプロジェクトがコンパイルされ、自分の設定を確認できますが、値を定義していないため、クリックすると強制的に閉じられます。なぜこの値を追加できるのですか? このライブラリで作業した人はいますか?

ありがとうございました

4

1 に答える 1

0

プリファレンス xml ファイルの最上位に、ライブラリ属性のスキーマを追加する必要があります。これは次のようになります。2 行目と 3 行目が重要です。

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:picker="http://schemas.android.com/apk/res/[com.yourpackagename]">
    <PreferenceCategory android:title="General" >
        <EditTextPreference
            android:defaultValue="0"
            android:title="@string/SMSSentLimitTitle"
            android:key="SMSSentLimit"
            android:summary="@string/SMSSentLimitSummary" 
            android:inputType="number" />
        <com.michaelnovakjr.numberpicker.NumberPickerPreference
            android:key="demo.preference"
            android:title="Sample Number Picker"
            android:summary="Number picker as a preference"
            picker:defaultValue="15"
            picker:startRange="-50"
            picker:endRange="50" />
    </PreferenceCategory>
</PreferenceScreen>
于 2012-10-04T19:34:28.847 に答える