ここで何が間違っているのかわかりません。助けていただければ幸いです。
私のメイン アクティビティの onCreate メソッドには、次のようなものがあります。
// set the default preferences
PreferenceManager.setDefaultValues(context, R.xml.preferences, false);
// get the preferences
prefs = getPreferences(MODE_PRIVATE);
// Load the values or defaults from the SharedPreferences
msMainClockStart = prefs.getLong( "Main_Clock_Minutes", 0 );
useShotClock = prefs.getBoolean( "Use_ShotClock", false );
msShotClockStart = prefs.getLong( "Shot_Clock_Seconds", 20000 );
tvPeriodPrefix = prefs.getString( "Period_Prefix", "P" );
valMaxPeriods = prefs.getInt( "Max_Periods", 4 );
私の res/xml/preferences.xml ファイルには、次のものがあります
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
<EditTextPreference
android:key="Main_Clock_Minutes"
android:positiveButtonText="SAVE"
android:negativeButtonText="CANCEL"
android:title="Main Clock (minutes)"
android:defaultValue="480000"
android:summary="How many minutes for the main clock."/>
<CheckBoxPreference
android:key="Use_ShotClock"
android:title="Enable Shot Clock"
android:defaultValue="true"/>
<EditTextPreference
android:key="Shot_Clock_Seconds"
android:title="Shot Clock (seconds)"
android:summary="How many seconds for the shot clock."
android:defaultValue="30000"/>
<EditTextPreference
android:key="Period_Prefix"
android:title="Period Prefix (e.g. Q, Shift, Period)"
android:defaultValue="Q"/>
<EditTextPreference
android:key="Max_Periods"
android:title="Maximum number of periods"
android:defaultValue="4"/>
何らかの理由で、デフォルトがxmlファイルから読み取られたりロードされたりしていません。使用されている getLong() メソッドまたは getBool() メソッドに入力されたデフォルト。
誰かが理由を知っていますか?
EDIT @Gunnar Karlsson
に変更した後getDefaultSharedPreferences
、121行目でエラーが発生します。これは次のとおりです。
msMainClockStart = prefs.getLong( "Main_Clock_Minutes", 0 );
エラーには、「ロングから文字列にキャストできません。しかし、msMainClockStart はロングで、prefs.getLong() はロングを返すため、なぜ機能しないのかわかりません。