Java 将edittext输入转换为整数

Java 将edittext输入转换为整数,java,android,math,Java,Android,Math,尝试评估一个简单数学问题的正确答案。这是获取输入并将其转换为一个int以与另一个int进行比较的正确方法吗 public void checkAnswer(){ int mm; //answer = editText.getText().toString(); mm = Integer.parseInt(editText.getText().toString()); if (mm == correctAnswer){

尝试评估一个简单数学问题的正确答案。这是获取输入并将其转换为一个int以与另一个int进行比较的正确方法吗

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

        if (mm == correctAnswer){

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

    }
下面是我如何设置正确答案的

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;

这很好,只需确保editText不为null,并且文本为实际数字


否则它将抛出nullpointerexception或numberformatexception。

我认为由于getQuestion中的最后一对if/else,您的分数每次都可能下降

假设i1==1,程序将执行第一个代码块并设置correctAnswer。 然而,当它到达“if(i1==4){”行时,它将比i1!=4更准确,并将移动到else,这将使分数递减

如果只删除以下几行,是否有效

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

我刚才看到了你关于这个问题的另一个问题,其中有几行:

case R.id.keypad_hash:
   getQuestion();
   checkAnswer();
这看起来也很奇怪,因为getQuestion()将在检查其是否正确之前更改correctAnswer!如果将这些行的顺序切换为:

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

你知道为什么它认为每个答案都是错误的吗?我通过显示它来检查correctAnswer,它们是正确的。我编辑了这个问题。@Abs90你的意思是没有eroor,只有else部分id被执行?@Abs90我们无法从你的代码中看出你是如何设置correctAnswer的。你应该(以某种方式)输出它mm和correctAnswer的值,或者使用调试器查看这些值,如果在Android中可能的话。确保使用%运算符将i1钳制在0和4之间。另外,确保只调用一次getQuestion,否则“正确”的答案每次都会更改。正如toto2所说,还可以尝试输出mm的值。(使用Log.d()int-Min=1;int-Max=4;int-i1=Min+(int)(Math.random()*((Max-Min)+1));那会在0-4之间拍手,对吗?嘿,谢谢你,伙计,我把它们交换了一下,现在计数器开始工作了!你知道我怎么把问题的数量限制在10个,然后在最后显示用户的分数吗?假设我需要某种循环。