質問

ここで何が起こっているのかわかりません。エントリとエントリの値が正しく設定されているリストの表示があります。

PreferNCESアクティビティに参加して、それが正常に機能する値を変更すると(テストするオプションを変更した後に値を出力するためにトーストを追加しました)。

しかし、私がそれを比較するために次のことをするとき、それは私がリストプレーファレンスを変更したときでさえ、私が毎回変更するときにそれを常に変更するとき、常に他の統計を実行します、そして、値が「ブルーキー」であったときでも、正しいifステートメントを実行することができませんでした。

onResume()のリストプレーファレンスの値を確認するために使用するコードは次のとおりです。

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();
  }

トーストがそこにあるので、どのステートメントが実行されるかを再確認できます。それは常に他のもののようです。

私は悪い日を過ごしていて、何か間違ったものを手に入れていますか?

役に立ちましたか?

解決

まずこのような文字列を比較することはありません backgroundPref == "bluesky" あるべきです backgroundPref.equals("bluesky");

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top