计算器第二版本

做计算器可能要先暂停一下了,毕竟不懂得东西太多,需要进一步扩展一下知识再来完善计算器。

第二个版本的计算器可谓纯粹的一个逻辑上的计算,没有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跳转。

posted @ 2011-07-16 18:56  eoe星晴  阅读(289)  评论(0编辑  收藏  举报