2015-10-25 56 views
0

我在做一個簡單的非常簡單的android數學遊戲。但我不能設法比較兩個TextViews讓用戶知道他們是否計算正確或不?比較兩個TextViews的結果Java/Android

我不正確地比較它們,因爲我的if/else語句只給了我其他的輸出??如果條件爲

public class PlayActivity extends AppCompatActivity { 

EditText number1; 
EditText number2; 
TextView result; 
Button addNumbers; 
TextView equalW; 
TextView equalL; 
TextView generate; 


double num1,num2,sum; 

Random r = new Random(); 

public View.OnClickListener listener = new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 

     generate = (TextView)findViewById(R.id.textViewGenerate); 

     int generated = r.nextInt(101); 
     generate.setText(Integer.toString(generated)); 
    } 
}; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_play); 

    number1 = (EditText)findViewById(R.id.editTextNumber1); 
    number2 = (EditText)findViewById(R.id.editTextNumber2); 
    result = (TextView)findViewById(R.id.textViewSum); 
    addNumbers = (Button)findViewById(R.id.buttonAdd); 
    equalL = (TextView)findViewById(R.id.textViewLose); 
    equalW = (TextView)findViewById(R.id.textViewWin); 
    Button buttonGenerate = (Button)findViewById(R.id.buttonGenerate); 
    buttonGenerate.setOnClickListener(listener); 


    addNumbers.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 

      num1 = Double.parseDouble(number1.getText().toString()); 
      num2 = Double.parseDouble(number2.getText().toString()); 

      sum = num1 + num2; 
      result.setText(Double.toString(sum)); 

      if (generate.getText().toString().equals(result)) 
      { 
       equalW.setText("Answer is correct"); 
      } 
      else { 
       equalL.setText("lose"); 
      } 
     } 
    }); 

} 

回答

0

你有一個明顯的問題和另一個潛伏的問題。

最明顯的一個:你有StringString,而不是比較有TextView。因此用if (generate.getText().toString().equals(result.getText().toString()))代替if (generate.getText().toString().equals(result))

的潛伏之一:如果你仔細看,sumresult設置爲字符串和generatedgenerate設置爲字符串。 sum是數據類型doublegenerate是數據類型int。比較兩者會導致問題。這就像比較"10".equals("10.0")。這是容易出錯的。您需要將這兩個字段設置爲通用數據類型。

0

變化:

if (generate.getText().toString().equals(result.getText().toString())) 
    { 

    } 

由於result是視圖,以便調用用於比較字符串值getText方法。

0

結果是TextView的,所以你必須寫

如果(generate.getText()。的toString()。等於(result.getText()。的toString))