为了账号安全,请及时绑定邮箱和手机立即绑定

计算器按等于没反应

package com.example.calculatordemo;

import android.R.string;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;

public class MainActivity extends Activity implements OnClickListener{
 Button btn_0;//0数字按钮
 Button btn_1;//1数字按钮
 Button btn_2;//2数字按钮
 Button btn_3;//3数字按钮
 Button btn_4;//4数字按钮
 Button btn_5;//5数字按钮
 Button btn_6;//6数字按钮
 Button btn_7;//7数字按钮
 Button btn_8;//8数字按钮
 Button btn_9;//9数字按钮
 Button btn_point;//小数点按钮
 Button btn_clear;//清除按钮
 Button btn_del;//删除按钮
 Button btn_plus;//加号按钮
 Button btn_minus;//减号按钮
 Button btn_multiply;//乘号按钮
 Button btn_divide;//除号按钮
 Button btn_equal;//等于按钮
 EditText et_input;//显示输入内容的显示屏
 boolean clear_flag;

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  btn_0=(Button) findViewById(R.id.btn_0);
  btn_1=(Button) findViewById(R.id.btn_1);
  btn_2=(Button) findViewById(R.id.btn_2);
  btn_3=(Button) findViewById(R.id.btn_3);
  btn_4=(Button) findViewById(R.id.btn_4);
  btn_5=(Button) findViewById(R.id.btn_5);
  btn_6=(Button) findViewById(R.id.btn_6);
  btn_7=(Button) findViewById(R.id.btn_7);
  btn_8=(Button) findViewById(R.id.btn_8);
  btn_9=(Button) findViewById(R.id.btn_9);
  btn_point=(Button) findViewById(R.id.btn_point);
  btn_clear=(Button) findViewById(R.id.btn_clear);
  btn_del=(Button) findViewById(R.id.btn_del);
  btn_plus=(Button) findViewById(R.id.btn_plus);
  btn_minus=(Button) findViewById(R.id.btn_minus);
  btn_multiply=(Button) findViewById(R.id.btn_multiply);
  btn_divide=(Button) findViewById(R.id.btn_divide);
  btn_equal=(Button) findViewById(R.id.btn_equal);
  et_input=(EditText) findViewById(R.id.et_input);
  btn_0.setOnClickListener(this);
  btn_1.setOnClickListener(this);
  btn_2.setOnClickListener(this);
  btn_3.setOnClickListener(this);
  btn_4.setOnClickListener(this);
  btn_5.setOnClickListener(this);
  btn_6.setOnClickListener(this);
  btn_7.setOnClickListener(this);
  btn_8.setOnClickListener(this);
  btn_9.setOnClickListener(this);
  btn_point.setOnClickListener(this);
  btn_clear.setOnClickListener(this);
  btn_del.setOnClickListener(this);
  btn_plus.setOnClickListener(this);
  btn_minus.setOnClickListener(this);
  btn_multiply.setOnClickListener(this);
  btn_divide.setOnClickListener(this);
  btn_equal.setOnClickListener(this);
 }

 @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) {
  String str=et_input.getText().toString();
   switch (v.getId()){ 
         case R.id.btn_0:
         case R.id.btn_1:
         case R.id.btn_2:
         case R.id.btn_3:
         case R.id.btn_4:
         case R.id.btn_5:
         case R.id.btn_6:
         case R.id.btn_7:
         case R.id.btn_8:
         case R.id.btn_9:
         case R.id.btn_point:
          if (clear_flag) {
           clear_flag=false;
           str="";
           et_input.setText("");
   }
         et_input.setText(str+((Button)v).getText());
             break;
         case R.id.btn_plus:
         case R.id.btn_minus:
         case R.id.btn_multiply:
         case R.id.btn_divide:
          if (clear_flag) {
           clear_flag=false;
           str="";
           et_input.setText("");
   }
         et_input.setText(str+""+((Button)v).getText()+"");
             break;
         case R.id.btn_del:
          if (clear_flag) {
           clear_flag=false;
           str="";
           et_input.setText("");
   }else if (str!=null&&!str.equals("")){
         et_input.setText(str.substring(0,str.length()-1));
   
  }
          break;
         case R.id.btn_clear:
          clear_flag=false;
          str="";
         et_input.setText("");
          break;
         case R.id.btn_equal:
             break;
 }
}
 private void getResult() {
  String exp=et_input.getText().toString();
  if (exp==null||exp.equals("")) {
   return;
   
  }
  if (!exp.contains("")) {
   return;
  }
  if (clear_flag) {
   clear_flag=false;
   return;
   
  }
  clear_flag=true;
  double result=0;
  String s1=exp.substring(0,exp.indexOf(""));
  String op=exp.substring(exp.indexOf("")+1,exp.indexOf("")+2);
  String s2=exp.substring(exp.indexOf("")+3);
  if (!s1.equals("")&&!s2.equals("")) {
   double d1=Double.parseDouble(s1);
   double d2=Double.parseDouble(s2);
   if (op.equals("+")) {
    result=d1+d2;
   }else if (op.equals("-")) {
    result=d1-d2;}
   else if (op.equals("×")) {
    result=d1*d2;
   }
   else if (op.equals("÷")) {
    if (d2==0) {
     result=0;
    }else {result=d1/d2;
     
    }
   }
   if (!s1.contains(".")&&!s2.contains(".")&&!op.equals("÷")) {
    int r=(int)result;
    et_input.setText(r+"");
   }else {
    et_input.setText(result+"");
   }
  }else if (!s1.equals("")&&s2.equals("")) {
   et_input.setText(exp);
  }else if (s1.equals("")&&!s2.equals("")) {
   double d2=Double.parseDouble(s2);
   if (op.equals("+")) {
    result=0+d2;
   }else if (op.equals("-")) {
    result=0-d2;}
   else if (op.equals("×")) {
    result=0;
   }
   else if (op.equals("÷")) {
     result=0;
   }
   if (!s2.contains(".")) {
    int r=(int)result;
    et_input.setText(r+"");
   }else {
    et_input.setText(result+"");
   }
  }else {et_input.setText("");
   
  }
 }
}


正在回答

1 回答

同样的问题

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Android攻城狮的第一门课(入门篇)
  • 参与学习       312585    人
  • 解答问题       4633    个

想快速掌握Android应用开发基础,选择学习这门课程就对了。

进入课程

计算器按等于没反应

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信