ここで何が起こっているのかわかりません。エントリとentryValuesが正しく設定されたListPreferenceがあります。
優先アクティビティに移動して値を変更すると、正常に機能します(テストするオプションを変更した後、値を出力するためにトーストを追加しました)。
しかし、以下を比較して行うと、毎回変更すると常にelseステートメントが実行されます。上記のように、ListPreferenceを変更し、値が「bluesky」の場合でも、正しいifステートメントを実行できませんでした。
onResume()でListPreferenceの値をチェックするために使用するコードは次のとおりです。
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this)
String backgroundPref = prefs.getString("backgroundPref", "");
if(backgroundPref == "bluesky"){
mainLayout.setBackgroundResource(R.drawable.bluesky);
Toast.makeText(getBaseContext(), "Blue Sky", Toast.LENGTH_SHORT).show();
}else if(backgroundPref == "sky"){
mainLayout.setBackgroundResource(R.drawable.sky);
Toast.makeText(getBaseContext(), "Sky", Toast.LENGTH_SHORT).show();
}else{
mainLayout.setBackgroundResource(R.drawable.sunsetscene);
Toast.makeText(getBaseContext(), "Sunset Scene", Toast.LENGTH_SHORT).show();
}
トーストがそこにあるので、どのステートメントが実行されるかを再確認できますが、それは常に他のステートメントのようです。
私は悪い日を過ごしていて、何かがおかしいのですか?