Android开发:ListPreference麻烦

时间:2010-10-12 20:53:59

标签: android string list listpreference

我不明白这里发生了什么。 我有一个ListPreference,条目和entryValues正确设置。

当我进入prefernces活动并更改其成功的值时(我在添加测试选项后添加了Toast以输出值)。

但是当我执行以下操作来比较它时,它总是在我每次更改它时执行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();
  }

Toasts在那里,所以我可以仔细检查哪个语句被执行,它似乎总是另一个。

我度过了糟糕的一天并且出错了吗?

1 个答案:

答案 0 :(得分:1)

对于初学者来说,永远不要比较这样的字符串backgroundPref == "bluesky" 应为backgroundPref.equals("bluesky");