作成したアプリで設定を使用することを検討しています。例えば:
私のアプリの一部には、CountDown タイマーが必要です。このカウント ダウン タイマーのデフォルトは 8:00 (8 分または 480000 ミリ秒) です。ただし、ユーザーがこれを任意の値に変更できるようにする必要があります。
調査中に、Android に組み込まれている SharedPreferences 機能を発見しましたが、それがどのように機能するのか少し混乱しています。
私の考えでは、アプリは共有設定を探し、そこにない場合はデフォルトを使用します。機能していないようです。新しいアプリをインストールすると (現在、共有設定 XML ファイルがないため、デフォルトをロードするだけだと思っていましたが、null ポインター エラーが発生し、アプリがクラッシュします。
これが私の関連コードです:
long
msSavedMainClock = 0,
msSavedShotClock = 0,
msShotClockStart,
msMainClockStart;
TextView
tvPeriodPrefix,
tvPeriod;
// Create the SharedPreferences object
SharedPreferences prefs = getSharedPreferences("settings", MODE_PRIVATE);
// Create the Preference Editor object
SharedPreferences.Editor prefsEditor = prefs.edit();
@Override
protected void onCreate(Bundle savedInstanceState) {
/******* more code here *******/
// Load the values/defaults from the SharedPreferences
tvPeriodPrefix.setText( prefs.getString("Period_Prefix", getResources().getString(R.string.period)) );
msMainClockStart = prefs.getLong( "Default_Main_Clock", 480000); // 8 minute default
msShotClockStart = prefs.getLong( "Default_Shot_Clock", 24000); // 24 second default
// Initialize other variables
tvPeriod.setText( tvPeriodPrefix + "1" );
/******* rest of my code here *******/
誰が私が間違っているのか教えてもらえますか?