3

xml設定ファイルから長い値を取得するための次のコードがあります。

SharedPreferences getPrefs = PreferenceManager.getDefaultSharedPreferences(getBaseContext()); 

long longBreak = Integer.parseInt(getPrefs.getString("breakTime", "8000"));
long shortBreak = Integer.parseInt(getPrefs.getString("breakTime", "5000"));
long workTime = Integer.parseInt(getPrefs.getString("workTime", "10000"));

何らかの理由で、LogCatショーの「SharedPreferencegetPrefs = ....」の行にエラーがあり、長い値をロードする前にAndroidアプリケーションが壊れます...。

私は次のように私の好みのxmlを持っています、

<ListPreference
    android:entries="@array/workList"
    android:entryValues="@array/workTimes"
    android:key="workTime"
    android:summary="Choose Work Time"
    android:title="Work Time" />
<ListPreference
    android:entries="@array/breakList"
    android:entryValues="@array/breakTimes"
    android:key="breakTime"
    android:summary="Choose Break Time"
    android:title="Break Time" />

そして私の配列値は次のとおりです、

<string-array name="workList">
    <item>25 Minutes</item>
    <item>10 Seconds</item>
</string-array>
<string-array name="breakList">
    <item>15 Minutes</item>
    <item> 5 Minutes</item>
    <item>8 Secs</item>
    <item>5 Secs</item>
</string-array>
<string-array name="workTimes">
    <item>1500000</item>
    <item>10000</item>
</string-array>
<string-array name="breakTimes">
    <item>900000</item>
    <item>300000</item>
    <item>8000</item>
    <item>5000</item>
</string-array>

私はこれと同じコードをdiffアプリでテストしましたが、正常に動作します。前もって感謝します...

4

1 に答える 1

8

以下を使用できます。

 SharedPreferences shared = getSharedPreferences("file_pref", MODE_PRIVATE);
 to get a object of SharedPreferences

SharedPreferences から Long 値を取得するには、SharedPreferences クラスの Editor から putLong("key","value") を使用し、必要な値を取得するには getLong("key","default_value") を使用する必要があります。元:

//作成:

SharedPreferences shared = getSharedPreferences("file_pref", MODE_PRIVATE);
Editor edit = shared.edit();
shared.putLong("key1","value1");

//使用:

SharedPreferences shared = getSharedPreferences("file_pref", MODE_PRIVATE);
Long value_long = shared.getLong("key1",0);
//with 0 - default value

このリンクを参照して、SharedPreferences クラスを使用して単純な情報を Android に明確かつ簡単に保存する方法を理解できます。

アプリを閉じる前に値を保存しますか?

お役に立てば幸いです。

于 2012-04-14T03:11:37.043 に答える