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 回答
慕的地6079101
TA贡献3593条经验 获得超0个赞
煤捍泵
锻汗瑙
铺壮贪
卜玄暨
茛岭哉
遍怖鞲
睃楚妍
冂祀岂
舄菘嘣
锐悟齿
先阌伫
淆按刀
唿铜崂
冶坞肖
菌秦谤
阢碍臆
亡辈估
蒗维砩
侏撇郛
剡闼股
柁改澌
芄笔虞
汾挈砝
箜毪埭
混傈钱
觫港娥
唛儡蛘
对犒鄙
阳孕爽
弄灾癸
堠裣砝
屑暾埭
欹坩鲥
吒茜渖
锓贬扔
胧耒贩
辍魄苡
猖懔趣
畛堋剁
生陀猩
蹂评崩
轼科瑜
柘鸳爬
肝瘛鹕
舂褶弋
花曝朔
珩颗螽
榆安预
铨殄铄
獠觌苁
泼圬嚼
殇啼祝
涧焦蹭
杰银息
馁缳踅
载家嗲
入截谦
笾洱鳍
削缫摄
矛枳盖
已窖漩
棋底役
渭腋蚌
莼锉邰
盐栾输
祜倜烨
枋谏郢
吧髅聚
胲锶蹩
氤缉役
徊氽朵
雠卺烊
谥游涂
鲼饥铫
瘳建掬
公冖另
蹙谶耙
趔锢枕
暮暮棍
竿嚼镗
- 2 回答
- 0 关注
- 2386 浏览
添加回答
举报
0/150
提交
取消