如何使我的Android计算器工作

时间:2013-10-18 23:51:56

标签: java android

我正在用Java制作Android的基本计算器。我陷入了最后一步,它必须使用先前的输入添加输入。看看代码:

    public void displayValue(){

    String mything = display.getText().toString();
    input = Integer.parseInt(mything);

}
public void number1(View view){
    if (input == 0){display.setText("");}

    display.append(Integer.toString(1));
    displayValue();

}
public void number2(View view){
    if (input == 0){display.setText("");}

    display.append(Integer.toString(2));
    displayValue();

}
public void plus(View view){
    displayValue();            //result= 0
    result = result + input;   //result= input
    input = 0;                 //input=0

    //in this step input becomes 0 to let the user enter new number input but this 
    //input never add the old result and the equal shows the old result.
}
public void equal(View view){
    displayValue();
    display.setText(Integer.toString(result));

}

我注意到,如果我以相同的方法添加一行并将结果添加到输入中,我会得到正确的答案但是这样会有帮助,因为它也会有减号按钮。

有什么想法吗?

感谢。

2 个答案:

答案 0 :(得分:0)

这很难说,因为你没有包含完整的代码,这会有所帮助,但可能是因为你在做数学之前在某些地方调用了displayValue();?特别是在plus方法中。

答案 1 :(得分:0)

好吧最后我想出了一个解决方案。 因为计算结果和新输入的唯一选择是相同的方法(因为逻辑上当用户按下相等按钮时,所以想要结束等式),所以我为每个减去加上计算添加了两个布尔值。然后我添加了两个加值或减去2的值的计算。 然后,当用户在计算的第一部分之间然后点击加号时,加号的布尔值变为真,并且在输入新输入并且点击等号之后,它执行计算的真实部分。嗯,这有点难以解释,但我想通过查看代码,你会得到我的意思。

boolean whenMinus = false;
boolean whenPlus = false;

public void plus(View view){
    displayValue();
    result = input;
    input = 0;
    whenPlus = true;
}
public void minus(View view){
    displayValue();
    result = input;
    input = 0;
    whenMinus = true;
}
public void equal(View view){
    if (whenPlus == true){result = result + input; whenPlus = false;}
    if (whenMinus == true){result = result - input; whenMinus = false;}

    display.setText(Integer.toString(result));

}

我不确定这是否是制作此计算器的正确方法。但无论如何我解决了我的问题。很高兴评论我,让我知道它是标准方式还是有点黑客攻击。反正我也不是职业选手。