android计算器

来源:互联网 发布:windows qt安装包下载 编辑:程序博客网 时间:2024/05/19 05:30

主类:

package com.bn.es2b;//包名


import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.view.View.OnClickListener;


public class Sample2_2_Activity extends Activity 
{
TextView tv;
int[] buttons;//数字按钮数组
int result;
int result0;
int result1;

Button buttonC;//按钮对象声明
Button buttonJia;
Button buttonJian;
Button buttonCheng;
Button buttonChu;
Button buttonDengyu;

String str1; //旧输入的值
String str2; //新输入的值

int flag=0; //计算标志位,0第一次输入;1加;2减;3乘;4除;5等于
Button temp;

@Override
public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main); //跳转到main界面
        initButton();
        
        //清空按钮的点击事件监听器
        buttonC.setOnClickListener
        (
       new OnClickListener()
       {
     public void onClick(View v) 
   {
str1="";
str2=""; //清空记录
tv.setText(str1);
flag=0;
}
}
        );
        //监听
        for(int i=0;i<buttons.length;i++)
        {
        temp=(Button)findViewById(buttons[i]);
        temp.setOnClickListener
        ( //为Button添加监听器
        new OnClickListener()
        {
        public void onClick(View v) 
{ //此处为计算器的关键代码

//   当第一次按下按钮时,str1="";之后再累加数字,之前一直没有弄懂的,现在知道了

       str1=tv.getText().toString().trim();
       str1=str1+String.valueOf(((Button)v).getText());//获得新输入的值  参数v此时是按钮,所以需要强制转换;
      System.out.println("str1"+":::"+str1);
      tv.setText(str1);
}

        }
        );
        }
        
   buttonListener(buttonJia,1);
   buttonListener(buttonJian,2);
   buttonListener(buttonCheng,3);
   buttonListener(buttonChu,4);
   
        buttonDengyu.setOnClickListener
        (
        new OnClickListener()
        {
        public void onClick(View v)
        {System.out.println(str1);
           result1=Integer.parseInt(str1);
        if(flag==1)
               {
               result=result0+result1;
               System.out.println(result0+":"+result1);
               }
               else if(flag==2)
               {
               result=result0-result1;
               }
               else if(flag==3)
               {
               result=result0*result1;
               }
               else if(flag==4)
               {
               result=(int)(result0/result1);
               }
        String str=(result+"").trim();
        System.out.println(str);
        tv.setText(str);
        }
        }
        );
 }

//初始化按钮
    public void initButton()
    { //初始化控件资源
    tv=(TextView)this.findViewById(R.id.tv);//获取文本框控件对象
    str1=String.valueOf(tv.getText());str2="";       //初始化运算输入数值
   
    buttonC=(Button)this.findViewById(R.id.ButtonC);//获得计算按钮的按钮对象
    buttonJia=(Button)this.findViewById(R.id.ButtonJia);
    buttonJian=(Button)this.findViewById(R.id.ButtonJian);
    buttonCheng=(Button)this.findViewById(R.id.ButtonCheng);
    buttonChu=(Button)this.findViewById(R.id.ButtonChu);
    buttonDengyu=(Button)this.findViewById(R.id.ButtonDengyu);
   
    buttons=new int[]
    { //记录数值按钮的id
    R.id.Button00,R.id.Button01,R.id.Button02,R.id.Button03,R.id.Button04,
    R.id.Button05,R.id.Button06,R.id.Button07,R.id.Button08,R.id.Button09
    };
    }
    
    //按钮监听
    public void buttonListener(Button button,final int id)
    {
    button.setOnClickListener
    (
    new OnClickListener()
    {
    public void onClick(View v)
    {
    String str=tv.getText().toString().trim();
    result0=Integer.parseInt(str);
    tv.setText("");
    flag=id;
    }
    }
    );
    }
}


布局文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" 
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" 
    android:paddingTop="5dip">
    <TextView
    android:id="@+id/tv" 
    android:layout_width="fill_parent"
    android:layout_height="40dip" 
    android:layout_marginRight="5dip"
android:layout_marginLeft="5dip" 
android:background="#FFFFFF"
    android:gravity="center_vertical|right" 
    android:textSize="30dip"
    android:textColor="#ff0000">
    </TextView>
    <LinearLayout
    android:orientation="horizontal" 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" 
    android:paddingTop="5dip">
   <Button
    android:text="7"
    android:textSize="25dip"
    android:id="@+id/Button07" 
    android:layout_width="80dip" 
    android:layout_height="wrap_content"/>
  <Button
    android:text="8" 
    android:textSize="25dip" 
    android:id="@+id/Button08" 
    android:layout_width="80dip" 
    android:layout_height="wrap_content"/>
   <Button
    android:text="9" 
    android:textSize="25dip" 
    android:id="@+id/Button09" 
    android:layout_width="80dip" 
    android:layout_height="wrap_content"/>
   <Button
    android:text="+" 
    android:textSize="25dip" 
    android:id="@+id/ButtonJia" 
    android:layout_width="80dip" 
    android:layout_height="wrap_content"/>
    </LinearLayout>
    <LinearLayout
    android:orientation="horizontal" 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" 
    android:paddingTop="5dip">
   <Button
    android:text="4" 
    android:textSize="25dip" 
    android:id="@+id/Button04" 
    android:layout_width="80dip" 
    android:layout_height="wrap_content"/>
  <Button
    android:text="5"  
    android:textSize="25dip"
    android:id="@+id/Button05" 
    android:layout_width="80dip" 
    android:layout_height="wrap_content"/>
   <Button
    android:text="6"  
    android:textSize="25dip"
    android:id="@+id/Button06" 
    android:layout_width="80dip" 
    android:layout_height="wrap_content"/>
   <Button
    android:text="-"  
    android:textSize="25dip"
    android:id="@+id/ButtonJian" 
    android:layout_width="80dip" 
    android:layout_height="wrap_content"/>
    </LinearLayout>
    <LinearLayout
    android:orientation="horizontal" 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" 
    android:paddingTop="5dip">
   <Button
    android:text="1"  
    android:textSize="25dip"
    android:id="@+id/Button01" 
    android:layout_width="80dip" 
    android:layout_height="wrap_content"/>
  <Button
    android:text="2"  
    android:textSize="25dip"
    android:id="@+id/Button02" 
    android:layout_width="80dip"
    android:layout_height="wrap_content"/>
   <Button
    android:text="3"  
    android:textSize="25dip"
    android:id="@+id/Button03" 
    android:layout_width="80dip" 
    android:layout_height="wrap_content"/>
   <Button
    android:text="*"  
    android:textSize="25dip"
    android:id="@+id/ButtonCheng" 
    android:layout_width="80dip" 
    android:layout_height="wrap_content"/>
    </LinearLayout>
    <LinearLayout
    android:orientation="horizontal" 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" 
    android:paddingTop="5dip">
   <Button
    android:text="0" 
    android:textSize="25dip" 
    android:id="@+id/Button00" 
    android:layout_width="80dip" 
    android:layout_height="wrap_content"/>
  <Button
    android:text="c"  
    android:textSize="25dip"
    android:id="@+id/ButtonC" 
    android:layout_width="80dip" 
    android:layout_height="wrap_content"/>
   <Button
    android:text="="  
    android:textSize="25dip"
    android:id="@+id/ButtonDengyu" 
    android:layout_width="80dip" 
    android:layout_height="wrap_content"/>
   <Button
    android:text="/"  
    android:textSize="25dip"
    android:id="@+id/ButtonChu" 
    android:layout_width="80dip" 
    android:layout_height="wrap_content"/>
    </LinearLayout>
</LinearLayout>

0 0
原创粉丝点击