我被困在一個點,我試圖讓我的項目讀取一個首選項值(從ListPreference列表),然後在基本數學中使用該值減法實例。問題在於我的Java代碼沒有看到「seek」首選項,但默認值是(我嘗試使用默認值3000,現在爲0)。我錯過了什麼,這裏有一個錯誤,知道或未知?getSharedPreferences對ListPreferences和Integers不適合我,關注ListPreferences和Integer
這裏是我的Java代碼塊,其中問題通常表現爲:
public static final String PREF_FILE_NAME = "preferences";
seekback.setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View view) {
try {
SharedPreferences preferences = getSharedPreferences(PREF_FILE_NAME, MODE_PRIVATE);
Integer storedPreference = preferences.getInt("seek", 0);
(mediaPlayer.getCurrentPosition()-storedPreference);
} catch (Exception e) {
e.printStackTrace();
}
}
});
這裏是我的項目的一些其他代碼位:
從首選項文件:
<ListPreference
android:entries="@array/seconds"
android:entryValues="@array/seconds_values"
android:summary="sets the seek interval for the seekback and seekforward buttons"
android:title="Seek Interval"
android:defaultValue="5000"
android:key="@string/seek">
</ListPreference>
從字符串文件:
<string name="seek">seek</string>
從一個數組文件:
<resources>
<string-array
name="seconds">
<item>Five seconds</item>
<item>Fifteen seconds</item>
<item>Thirty seconds</item>
<item>Sixty seconds</item>
</string-array>
<string-array
name="seconds_values">
<item>5000</item>
<item>15000</item>
<item>30000</item>
<item>60000</item>
</string-array>
</resources>
讓我知道如果你需要看到更多的代碼,以弄清楚這一個
預先感謝,可以提供任何幫助。我已經在這個問題上工作了幾個小時,並且我被燒了,第二雙眼睛將會非常感激。
感謝您的意見,請裸露在我身上。我已更改爲SharedPreferences首選項= PreferenceManager .getDefaultSharedPreference(getBaseContext());不過,我正在直接在手機上進行調試。我看到了我的項目的路徑,但它在F:\ data \ com.mypackage中,我看到的只是應該寫入該目錄的一個文件(工作正常,無論是讀取還是寫入)。 PS。我安裝了手機的SD,是否能夠提供準確的路徑視圖,還是需要按照您在此處提到的adb路線進行操作?再次感謝您的幫助。 – user227604 2010-03-23 23:45:03
你正在做的很好,檢查pref文件並在編輯器中打開,並檢查鍵是否存在並保存正確的值。 – Pentium10 2010-03-23 23:51:30
它看起來像正確序列化的值。我在EditPlus 3中打開它並查看android:key =「@ string/seek」。它也在res/xml目錄中。 – user227604 2010-03-24 00:00:46