将edittext输入转换为整数

时间:2012-03-06 18:02:20

标签: java android math

试图评估一个简单的数学问题的正确答案。这是正确的方法来获取输入并将其转换为int与另一个int comared?

    public void checkAnswer(){
       int mm;
        //answer = editText.getText().toString();
        mm = Integer.parseInt(editText.getText().toString());

        if (mm == correctAnswer){

        score++;
        scoredisplay.setText("" + score);

    }

这是我如何设置correctAnswer

public void getQuestion(){

    random1 = (int)(Math.random()*100);
    random2 = (int)(Math.random()*10);

    int i1 = Min + (int)(Math.random() * ((Max - Min) + 1));

    if(i1 == 1){
    question = (random1 + "+" + random2);
    correctAnswer = random1 + random2;
    editTextEquation.setText(question);
    }
    if(i1 == 2){
    question = (random1 + "-" +random2);
    correctAnswer = random1 - random2;
    editTextEquation.setText(question);

    }
    if(i1 == 3){
    question = random1 + "/" +random2;
    correctAnswer = random1 / random2;
    editTextEquation.setText(question);

    }
    if(i1 == 4){
    question = (random1 + "*" +random2);
    correctAnswer = random1 * random2;
    editTextEquation.setText(question);


    }


    else{

        score--;
        scoredisplay.setText("" + score);
    }

按钮

    @Override
public void onClick(View v){
switch(v.getId()){
case R.id.keypad_hash:

    getQuestion();
    checkAnswer();

    break;

2 个答案:

答案 0 :(得分:1)

我认为由于getQuestion中的最终if / else对,您的得分可能每次都会下降。

假设i1 == 1,程序将执行第一个代码块并设置correctAnswer。 然而,当它到达“if(i1 == 4){”时它会发现比i1!= 4并且将移动到其他地方,这会减少得分。

如果您只是删除以下行,它是否有效?

else{
    score--;
    scoredisplay.setText("" + score);
}

修改

我刚刚看到你的另一个问题与这个问题有关,并且在其中你有以下几行:

case R.id.keypad_hash:
   getQuestion();
   checkAnswer();

这也看起来很奇怪,因为getQuestion()会在检查它是否正确之前更改correctAnswer!如果将这些行的顺序切换为:

,也许它会更好
case R.id.keypad_hash:
    checkAnswer();
    getQuestion();

答案 1 :(得分:0)

没关系,只要确保editText不为null,并且文本是实际数字。

否则会抛出nullpointerexception或numberformatexception。