计算器第二版本
做计算器可能要先暂停一下了,毕竟不懂得东西太多,需要进一步扩展一下知识再来完善计算器。
第二个版本的计算器可谓纯粹的一个逻辑上的计算,没有activity的跳转,页面的布局都是LinearLayout的线性布局拼凑起来,可谓技术含量不大
还是先贴上代码,以便日后几个不同版本计算器结合各自的优点,打造一个属于自己的Android版本计算器,Android操作系统自带的计算器有个
严重的BUG,以后买了自己的android手机后就不要到appstone上面去买了。
package com.zlx.act.cac; //导入的包此处省略 ... public class caculate extends Activity { /** Called when the activity is first created. */ //声明 public String num = null; public float i = 0; public float i1= 0; public float i2= 0; public String symbol = null; private Button btn0 ;
....
public EditText myEditText ; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //myEditText.setText("0"); //ID对应的控件 btn0 = (Button)findViewById(R.id.n0);
....
//绑定事件监听 btn0.setOnClickListener(listener0);
...
} //每个Button按钮所要处理的事件
...
private OnClickListener listener0 = new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub if (num!=null) { num = getString(R.id.edit); i = Integer.parseInt(num); i = i*10; myEditText.setText(i+""); } else { i = i*10; myEditText.setText(i+""); } } }; private OnClickListener listener_equal = new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub i2 = i; if (symbol=="plus") { i = i1+i2; } if (symbol=="reduce") { i = i1-i2; } if (symbol=="divide") { i = i1/i2; } if (symbol=="multiplied") { i = i1*i2; } myEditText.setText(i+""); i1 = 0; i2 = 0; i = 0; } };
...
}
贴上一张图
总的来说,这个计算器实现了加减乘除的简单运算,没有做到输入值的验证
下个版本中,会将每个数据都设置属性,这样就能检测输入数值的合法性,减少程序运行过程中出现的BUG
更多版本中讲增加异常处理,多线程,其它常用计算,支持丰富漂亮的activity跳转。