0

私は自分のプロジェクトに (ListPreference リストから) 設定値を読み取らせ、その値を基本的な数学的減算インスタンスで使用させようとしているところに行き詰まっています。問題は、「シーク」設定が Java コードで認識されていないにもかかわらず、デフォルト値が (3000 でデフォルト値を試し、現在は 0) であることです。ここに既知または未知のバグがありますか?

問題が明らかになる私の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>

これを理解するためにさらにコードを見る必要があるかどうか教えてください

提供できるヘルプを事前に感謝します。私はこの問題に数時間取り組んできましたが、やけどを負いました.2番目の目を見ていただければ幸いです.

4

2 に答える 2

2

この問題を解決しました。私のプロジェクトは「_」文字で名前が付けられていたことが判明し、アンダースコアをリファクタリングすると(そして getDefaultSharedPreferences オプションを使用すると)、すべてが正常に機能します。

この問題は、私の時間を 30 時間吸収しました。

于 2010-04-04T02:26:09.017 に答える
0

ListPreference 値を同じファイルに保存してください。adbロールを起動してcd /data/data/com.your.package、タイプ設定のフォルダとファイルを探します。

バグは、設定が保存されているファイルとは別のファイルを指定することだと思います:

これを変更してみてください:

SharedPreferences preferences = getSharedPreferences(PREF_FILE_NAME, MODE_PRIVATE);

SharedPreferences preferences = PreferenceManager
                .getDefaultSharedPreferences(context);
于 2010-03-23T20:30:42.997 に答える