将文本设置为string.xml中的文本视图不起作用

时间:2013-03-15 21:24:41

标签: android

所以我后面的代码将文本视图文本设置为字符串,但是当我运行应用程序时,文本视图中没有显示任何内容,有人可以解释原因吗?

代码:

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

2 个答案:

答案 0 :(得分: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));
}

答案 1 :(得分: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));
    }
  }