Java 尝试在android应用程序中为计算器编写计算代码

Java 尝试在android应用程序中为计算器编写计算代码,java,android,eclipse,calculator,Java,Android,Eclipse,Calculator,我正在尝试在android中分类一个计算器应用程序。我已经很好地设置了布局,现在我只需要做一些代码来计算。应用程序需要在按下时显示数字,然后如果按下+按钮,它将存储第一个数字,将其从屏幕上清除,获取第二个数字,然后将它们相加。按下“相等”按钮时,需要显示结果 到目前为止我有 public class Calculator extends Activity { public EditText display; TextView screen; int a, resul

我正在尝试在android中分类一个计算器应用程序。我已经很好地设置了布局,现在我只需要做一些代码来计算。应用程序需要在按下时显示数字,然后如果按下+按钮,它将存储第一个数字,将其从屏幕上清除,获取第二个数字,然后将它们相加。按下“相等”按钮时,需要显示结果

到目前为止我有

public class Calculator extends Activity {

    public EditText display;  
    TextView screen;
    int a, result;
    int c;
    Button b1;
    int sum1, sum2;
    String r;

    public int getSum1(int sum1) {
        return sum1;
    }

    public int getSum2(int sum2) {
        return sum2;
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);  

    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    public void buttonEventHandler(View v) {
        screen=(EditText)findViewById(R.id.screen);
        b1=(Button)findViewById(R.id.button1);
        switch(v.getId()) {

        case R.id.button1 :
            screen.setText(screen.getText() + "1");
            c = +1;
            break;

        case R.id.button2 : 
            screen.setText(screen.getText() + "2");
            c = +2;
            break;

        case R.id.button3 : 
            screen.setText(screen.getText() + "3");
            c = +3;
            break;

        case R.id.button4 : 
            screen.setText(screen.getText() + "4");
            c = +4;
            break;

        case R.id.button5 : 
            screen.setText(screen.getText() + "5");
            c = +5;
            break;

        case R.id.button6 : 
            screen.setText(screen.getText() + "6");
            c = +6;
            break;

        case R.id.button7 : 
            screen.setText(screen.getText() + "7");
            c = +7;
            break;

        case R.id.button8 : 
            screen.setText(screen.getText() + "8");
            c = +8;
            break;

        case R.id.button9 : 
            screen.setText(screen.getText() + "9");
            c = +9;
            break;

        case R.id.button0 : 
            screen.setText(screen.getText() + "0");
            c = +0;
            break;

        case R.id.buttonC :
            screen.setText(screen.getText() + "");
            c = 0;
            break;

        case R.id.buttonPlus :          


        case R.id.buttonEquals :



        }


    }
}

如何计算?

这是一个相当复杂的问题。随着时间的推移,它可能会变得更加复杂,这取决于您要进行的计算数量。是否将其限制为x+y?或者您希望允许类似
3*(4+5)/6+3

后者将使事情更加复杂,可能需要您以某种形式实现
数据类型。以下是我在谷歌上发现的一个讨论:

如果您选择前者,则需要允许
+
c
的当前值存储到数据类型中,然后清除屏幕并将
c
重置为0。按下
=
后,它将计算总和并将其报告回屏幕。确保包括所有检查,以确保没有值为空


关于你的意图和计划的更多细节可能有助于我和其他人了解你的项目范围。

这是一个相当复杂的问题。随着时间的推移,它可能会变得更加复杂,这取决于您要进行的计算数量。是否将其限制为x+y?或者您希望允许类似
3*(4+5)/6+3

后者将使事情更加复杂,可能需要您以某种形式实现
数据类型。以下是我在谷歌上发现的一个讨论:

如果您选择前者,则需要允许
+
c
的当前值存储到数据类型中,然后清除屏幕并将
c
重置为0。按下
=
后,它将计算总和并将其报告回屏幕。确保包括所有检查,以确保没有值为空


关于您的意图和计划的更多细节可能有助于我和其他人了解您的项目范围。

onCreate
中将您的
sum1
设置为零。当用户点击
+
时,请执行以下操作:

  • c
    添加到
    sum1
  • 显示
    sum1
  • c
    重置为零,以便键入新号码
  • 当用户点击
    =
    时,请执行以下操作:

  • c
    添加到
    sum1
  • 显示
    sum1
  • c
    sum1
    重置为零

  • 这允许您点击
    4+5+6=
    并查看
    15
    ,例如。

    onCreate
    中将
    sum1
    设置为零。当用户点击
    +
    时,请执行以下操作:

  • c
    添加到
    sum1
  • 显示
    sum1
  • c
    重置为零,以便键入新号码
  • 当用户点击
    =
    时,请执行以下操作:

  • c
    添加到
    sum1
  • 显示
    sum1
  • c
    sum1
    重置为零

  • 这允许您点击
    4+5+6=
    并查看
    15
    ,例如。

    您是在寻找
    Integer.parseInt(screen.getText())
    ?您是在寻找
    Integer.parseInt(screen.getText())
    ?我所需要做的只是简单的计算,就像a+y一样,谢谢你的帮助我需要它做的只是简单的计算,就像a+y一样,谢谢你的帮助谢谢。对于这种情况,我的代码是R.id.buttonPlus:sum1=+c;screen.setText(sum1);c=0;案例R.id.buttonEquals:sum1=+c;screen.setText(sum1);c=0;我推荐
    +=
    ,而不是
    +=
    。R.id.buttonEquals也应该做
    sum1=0
    。此外,当您轻触数字0到9时,代码应显示类似于
    c=c*10+4
    ;否则,当你点击9,然后点击4,你会得到13,而不是你预期的94。谢谢。对于这种情况,我的代码是R.id.buttonPlus:sum1=+c;screen.setText(sum1);c=0;案例R.id.buttonEquals:sum1=+c;screen.setText(sum1);c=0;我推荐
    +=
    ,而不是
    +=
    。R.id.buttonEquals也应该做
    sum1=0
    。此外,当您轻触数字0到9时,代码应显示类似于
    c=c*10+4
    ;否则,当你点击9,然后点击4,你会得到13,而不是你预期的94。