Android计算器

自己写了一个很简单的计算器,只能计算两步简单运算,只是想试一试Activity传值于是很鸡肋地将MainActivitiy中获得的两个值以及一个运算符传递到NextActivity在进行运算,并将运算结果再传到MainActivitiy并显示。(虽然并没有什么用-_-|||只是为了用这个而写这个)

public class MainActivity extends Activity implements OnClickListener{
private Button zero,one,two,three,four,five,six,seven,eight,
nine,add,exclude,multiply,divide,zerozero,is;
private EditText edittext1;
/*flagnumber=0时还没有写入数字,flagnumber=1时第一个数字已存在,
flagnumber=2运算符已存在,flagnumber=3时第二个数字已存在
flagnumber=4时已经按下=
本界面传过去的是3个String 两个运算数据 一个运算符
传回本界面的有两个数据  一个boolean标记是否运算成功   另一个是运算结果
运算不成功主要是针对除数为0的情况*/
private int flagnumber;
private String firstnumber,secondnumber,arith;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        findView();
        setClick();
        init();
    }
  public void findView(){
      zero=(Button) findViewById(R.id.button14);
        one=(Button) findViewById(R.id.button2);
        two=(Button) findViewById(R.id.button3);
        three=(Button) findViewById(R.id.button4);
        four=(Button) findViewById(R.id.button6);
        five=(Button) findViewById(R.id.button7);
        six=(Button) findViewById(R.id.button8);
        seven=(Button) findViewById(R.id.button10);
        eight=(Button) findViewById(R.id.button11);
        nine=(Button) findViewById(R.id.button12);
        add=(Button) findViewById(R.id.button13);
        exclude=(Button) findViewById(R.id.button9);
        multiply=(Button) findViewById(R.id.button5);
        divide=(Button) findViewById(R.id.button1);
        zerozero=(Button) findViewById(R.id.button15);
        is=(Button) findViewById(R.id.button16);
        edittext1=(EditText) findViewById(R.id.editText1);
  }

  public void setClick(){
      zero.setOnClickListener(this);
      one.setOnClickListener(this);
      two.setOnClickListener(this);
      three.setOnClickListener(this);
      four.setOnClickListener(this);
      five.setOnClickListener(this);
      six.setOnClickListener(this);
      seven.setOnClickListener(this);
      eight.setOnClickListener(this);     
      nine.setOnClickListener(this);
      add.setOnClickListener(this);
      exclude.setOnClickListener(this);
      multiply.setOnClickListener(this);
      divide.setOnClickListener(this);
      zerozero.setOnClickListener(this);
      is.setOnClickListener(this);

  }

  public void init(){
      flagnumber=0;
      firstnumber="";
      secondnumber="";
      arith="";
      edittext1.setText("");
  }
  @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        switch (v.getId()) {
        //除号
        case R.id.button1:
        if(flagnumber==1){
            firstnumber=edittext1.getText().toString();
            arith="/";
            flagnumber=2;
            edittext1.setText(edittext1.getText().toString()+"/");          
        }
        else{
            Toast.makeText(this, "输入有误!", 1).show();
            init();
        }
            break;
        //1
        case R.id.button2:
            if(flagnumber==0){
                flagnumber=1;
            }
            if(flagnumber==2){
                flagnumber=3;
            }
            if(flagnumber==4){
                init();
                flagnumber=1;
            }
            edittext1.setText(edittext1.getText().toString()+"1");

            break;
            //2
        case R.id.button3:
            if(flagnumber==0){
                flagnumber=1;
            }
            if(flagnumber==2){
                flagnumber=3;
            }
            if(flagnumber==4){
                init();
                flagnumber=1;
            }
            edittext1.setText(edittext1.getText().toString()+"2");
            break;
            //3
        case R.id.button4:
            if(flagnumber==0){
                flagnumber=1;
            }
            if(flagnumber==2){
                flagnumber=3;
            }
            if(flagnumber==4){
                init();
                flagnumber=1;
            }
            edittext1.setText(edittext1.getText().toString()+"3");
            break;
            //*
        case R.id.button5:
            if(flagnumber==1){
                firstnumber=edittext1.getText().toString();
                arith="*";
                flagnumber=2;
                edittext1.setText(edittext1.getText().toString()+"*");          
            }
            else{
                Toast.makeText(this, "输入有误!", 1).show();
                init();
            }

            break;
            //4
        case R.id.button6:
            if(flagnumber==0){
                flagnumber=1;
            }
            if(flagnumber==2){
                flagnumber=3;
            }
            if(flagnumber==4){
                init();
                flagnumber=1;
            }
            edittext1.setText(edittext1.getText().toString()+"4");
            break;
            //5
        case R.id.button7:
            if(flagnumber==0){
                flagnumber=1;
            }
            if(flagnumber==2){
                flagnumber=3;
            }
            if(flagnumber==4){
                init();
                flagnumber=1;
            }
            edittext1.setText(edittext1.getText().toString()+"5");
            break;
            //6
        case R.id.button8:
            if(flagnumber==0){
                flagnumber=1;
            }
            if(flagnumber==2){
                flagnumber=3;
            }
            if(flagnumber==4){
                init();
                flagnumber=1;
            }
            edittext1.setText(edittext1.getText().toString()+"6");
            break;
            //-
        case R.id.button9:
            if(flagnumber==1){
                firstnumber=edittext1.getText().toString();
                arith="-";
                flagnumber=2;
                edittext1.setText(edittext1.getText().toString()+"-");          
            }
            else{
                Toast.makeText(this, "输入有误!", 1).show();
                init();
            }
            break;
            //7
        case R.id.button10:
            if(flagnumber==0){
                flagnumber=1;
            }
            if(flagnumber==2){
                flagnumber=3;
            }
            if(flagnumber==4){
                init();
                flagnumber=1;
            }
            edittext1.setText(edittext1.getText().toString()+"7");
            break;
            //8
        case R.id.button11:
            if(flagnumber==0){
                flagnumber=1;
            }
            if(flagnumber==2){
                flagnumber=3;
            }
            if(flagnumber==4){
                init();
                flagnumber=1;
            }
            edittext1.setText(edittext1.getText().toString()+"8");
            break;
            //9
        case R.id.button12:
            if(flagnumber==0){
                flagnumber=1;
            }
            if(flagnumber==2){
                flagnumber=3;
            }
            if(flagnumber==4){
                init();
                flagnumber=1;
            }
            edittext1.setText(edittext1.getText().toString()+"9");
            break;
            //+
        case R.id.button13:
            if(flagnumber==1){
                firstnumber=edittext1.getText().toString();
                arith="+";
                flagnumber=2;
                edittext1.setText(edittext1.getText().toString()+"+");          
            }
            else{
                Toast.makeText(this, "输入有误!", 1).show();
                init();
            }
            break;
            //0
        case R.id.button14: 
            if(flagnumber==0){
                flagnumber=1;
            }
            if(flagnumber==2){
                flagnumber=3;
            }
            if(flagnumber==4){
                init();
                flagnumber=1;
            }
                edittext1.setText(edittext1.getText().toString()+"0");

            break;
            //00
        case R.id.button15:
            if(flagnumber==0){
                flagnumber=1;
            }
            if(flagnumber==2){
                flagnumber=3;
            }
            if(flagnumber==4){
                init();
                flagnumber=1;
            }
            edittext1.setText(edittext1.getText().toString()+"00");
            break;
            //=
        case R.id.button16:
            if(flagnumber==3){
                flagnumber=4;               
                String temp=edittext1.getText().toString();
                secondnumber=temp.substring(firstnumber.length()+1);
                edittext1.setText(edittext1.getText().toString()+"=");  
                //calcu(firstnumber,secondnumber,arith);
                Intent intent=new Intent(MainActivity.this,NextActivity.class);             
                Bundle bundle1=new Bundle();
                bundle1.putString("firstnumber", firstnumber);
                bundle1.putString("secondnumber", secondnumber);
                bundle1.putString("arith", arith);
                intent.putExtras(bundle1);
                startActivityForResult(intent, 100);
            }
            break;
        default:
            break;
        }
    }
    @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            // TODO Auto-generated method stub
            super.onActivityResult(requestCode, resultCode, data);
            if(requestCode==100&&resultCode==RESULT_OK){
                Bundle bundle3=data.getExtras();
                Boolean haveresult=bundle3.getBoolean("haveresult");
                if(haveresult){
                    float result=bundle3.getFloat("result");
                    edittext1.setText(edittext1.getText().toString()+""+result);    
                }
                else{
                    Toast.makeText(this, "除数不能为0!", 1).show();
                    init(); 
                }
            }
        }



}


public class NextActivity extends Activity {

float result=0.0f;
boolean haveresult=false;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_next);
        Intent intent =getIntent();
        Bundle bundle1=intent.getExtras();
        String firstNumber=bundle1.getString("firstnumber");
        String secondNumber=bundle1.getString("secondnumber");
        String arith=bundle1.getString("arith");
        calcu(firstNumber, secondNumber, arith);
        Bundle bundle2=new Bundle();
        bundle2.putBoolean("haveresult", haveresult);
        bundle2.putFloat("result", result);
        intent.putExtras(bundle2);
        setResult(RESULT_OK, intent);
        finish();
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.next, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }

private void calcu(String firstnumber2, String secondnumber2, String arith2) {

        float a1=Float.parseFloat(firstnumber2);
        float a2=Float.parseFloat(secondnumber2);

        switch (arith2) {
        case "+":
            //edittext1.setText(edittext1.getText().toString()+""+(a1+a2));
            haveresult=true;
            result=a1+a2;
            break;
        case "-":
            //edittext1.setText(edittext1.getText().toString()+""+(a1-a2));
            haveresult=true;
            result=a1-a2;
            break;
        case "/":           
            if(a2==0.0f){
                haveresult=false;
            }
            else{
            //  edittext1.setText(edittext1.getText().toString()+""+(a1/a2));
                haveresult=true;
                result=a1/a2;
            }
            break;
        case "*":
            haveresult=true;
            result=a1*a2;
        default:
            break;
        }
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值