我试图将两个变量从一个屏幕传递到另一个屏幕。从上一个屏幕中,您单击一个按钮,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 + "");
}
答案 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 + "");
}