簡體   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