![](/img/trans.png)
[英]IF statement count++ in android studio using java firebase
[英]Android studio: Number with three digits do not add to count++
出于练习目的,我正在构建一个Braintrainer应用程序。 看起来像这样:
您可以单击您认为正确的号码。 Foreach单击一个数字,右上角的计数器将增加一。 如果单击正确的数字,则其旁边的计数器也会增加一。
我的问题是这样的:
如果正确答案是2位数字。 两个计数器都将增加。 但是,如果正确答案是3位数字。 只有右上方的计数器会增加。 跟踪一些值会给我这些日志:
这是检查是否按下正确答案的代码:
public void guessFunction(View view){
TextView guessView = (TextView) view;
String buttonText = guessView.getText().toString();
Log.i("correctAnswer: ", String.valueOf(correctAnswer));
Log.i("buttonText: ", buttonText);
if (buttonText == String.valueOf(correctAnswer)){
correctCount++;
TextView correctText = (TextView) findViewById(R.id.correctText);
correctText.setText(String.valueOf(correctCount));
}
Log.i("count: ", String.valueOf(correctCount));
shuffleFunction();
}
请让我知道是否需要更多的代码样本。
if (buttonText.equals(String.valueOf(correctAnswer)){ ... }
通过放置object == otherObject
您询问两个对象的身份 ,它们是否是一个实例(由两个变量引用)。 通过放置object.equals(otherObject)
您将询问两个不同对象的相等性,即两个对象在特定方面是否相等(在equals()
方法中实现)。
在Java中,几乎总是希望将String
与String类的equals()
方法进行比较。 在您的情况下,很明显,您正在比较两个单独的对象(您刚刚使用String
类的静态valueOf
方法创建了第二个String
)。 因此,您需要使用equals()
。
错了
if (buttonText == String.valueOf(correctAnswer))
不要使用==
来比较Java中的字符串。 请改用equals
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.