繁体   English   中英

Android Studio:三位数的数字不加到++

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM