1

所以我下面的代码将文本视图文本设置为字符串但是当我运行应用程序时,文本视图中没有显示任何内容,谁能解释为什么?

代码:

public void onItemSelected(AdapterView<?> parent, View view,
    int position, long id) {
    Object poem = parent.getItemAtPosition(position);
    if(poem.toString() == "Tam O Shanter"){
         selectedPoem.setText(getString(R.string.tamO));
    }
}
4

2 回答 2

4
if (poem.toString() == "Tam O Shanter"){
   selectedPoem.setText(getString(R.string.tamO));
}

这将始终返回 false,因为您正在比较引用而不是值。你必须使用equals()方法。

有一个黄金法则:每次你想比较字符串时,equals() 都会成为你的朋友。

你需要这样做:

if (poem.toString().equals("Tam O Shanter")) { // or equalsIgnoreCase()
   selectedPoem.setText(getString(R.string.tamO));
}
于 2013-03-15T21:31:19.840 回答
2

我也重写了你的代码

String poem = (String)parent.getItemAtPosition(position);

你假设等于而不是 == 来比较 2 个字符串

  public void onItemSelected(AdapterView<?> parent, View view,
    int position, long id) {
    String poem = (String)parent.getItemAtPosition(position);
    if(poem.toString().equalsIgnoreCase("Tam O Shanter")){
         selectedPoem.setText(getString(R.string.tamO));
    }
  }
于 2013-03-15T21:33:31.503 回答