所以我后面的代码将文本视图文本设置为字符串,但是当我运行应用程序时,文本视图中没有显示任何内容,有人可以解释原因吗?
代码:
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));
}
}
答案 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));
}
}