简单如果声明

时间:2011-02-13 17:03:04

标签: android comparison instance

我试图将两个变量从一个屏幕传递到另一个屏幕。从上一个屏幕中,您单击一个按钮,1或2,然后将该值传递给该值。它还将值2作为正确值传递。我知道他们都在工作,因为我在下一个屏幕上输出每个变量。这是代码。它总是输出错误。

Intent i = getIntent();
Bundle b = i.getExtras();
String newText = b.getString("PICKED");
String correct = b.getString("CORRECT");
TextView titles = (TextView)findViewById(R.id.TextView01);
if(newText == correct){
titles.setText("Correct" + newText + " " + correct + "");
}
else{
    titles.setText("Wrong" + newText + " " + correct + "");
}

3 个答案:

答案 0 :(得分:3)

因为你没有比较字符串。你正在比较两者是否指向同一个对象。

比较字符串使用

if(nexText.equals(correct))

答案 1 :(得分:0)

if(newText == correct)

这总是假的。要逐个字符地比较两个字符串的内容,请使用.equals方法:

if( newText.equals(correct) )

在Java中使用==对象意味着您要比较存储在这些指针/引用中的内存地址的值。由于它们是不同的String对象,因此它们永远不会具有相同的地址。

答案 2 :(得分:0)

你不用这种方式比较字符串,用这种方式重写代码来完成任务:

Intent i = getIntent();
Bundle b = i.getExtras();
String newText = b.getString("PICKED");
String correct = b.getString("CORRECT");
TextView titles = (TextView)findViewById(R.id.TextView01);
if(newText.equals(correct)){
titles.setText("Correct" + newText + " " + correct + "");
}
else{
  titles.setText("Wrong" + newText + " " + correct + "");
}