计算器第二版本
做计算器可能要先暂停一下了,毕竟不懂得东西太多,需要进一步扩展一下知识再来完善计算器。
第二个版本的计算器可谓纯粹的一个逻辑上的计算,没有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跳转。

浙公网安备 33010602011771号