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

计算器无论怎么算结果都返回0怎么办?

计算器无论怎么算结果都返回0怎么办?

赵丰年 2016-10-26 17:23:43
public class MainActivity extends Activity implements OnClickListener {   Button btn_0;//0数字按钮   Button btn_1;   Button btn_2;   Button btn_3;   Button btn_4;   Button btn_5;   Button btn_6;   Button btn_7;   Button btn_8;   Button btn_9;   Button btn_point;   Button btn_clear;//清除按钮   Button btn_delete;   Button btn_equal;   Button btn_plus;//加号按钮   Button btn_minus;   Button btn_multiply;   Button btn_divide;   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_delete=(Button) findViewById(R.id.btn_delete); 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_plus.setOnClickListener(this); btn_delete.setOnClickListener(this); btn_divide.setOnClickListener(this); btn_multiply.setOnClickListener(this); btn_minus.setOnClickListener(this); btn_clear.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) { // TODO Auto-generated method stub 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; et_input.setText(" "); } et_input.setText(str+" "+((Button)v).getText()+" "); break; case R.id.btn_delete: 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: getResult(); 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(" "); } } }
查看完整描述
  • 2 回答
  • 0 关注
  • 2386 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信