希望对大家有用:android实现计算器功能
- 线性布局
- 表格布局
- activity功能实现
线性布局
// table_main.xml<?xml version=\"1.0\" encoding=\"utf-8\"?><LinearLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"android:layout_width=\"match_parent\"android:layout_height=\"match_parent\"android:background=\"#efaa4a\"android:orientation=\"vertical\" ><TextViewandroid:id=\"@+id/tv\"android:layout_width=\"match_parent\"android:layout_height=\"40dip\"android:layout_marginTop=\"5dip\"android:layout_marginLeft=\"3dip\"android:layout_marginRight=\"3dip\"android:gravity=\"right\"android:textSize=\"30dip\"android:textColor=\"#efaa4a\"android:background=\"#ad0000\"android:text=\"\" /><LinearLayoutandroid:layout_width=\"match_parent\"android:layout_height=\"wrap_content\" ><Buttonandroid:id=\"@+id/Button07\"android:layout_width=\"wrap_content\"android:layout_height=\"wrap_content\"android:layout_weight=\"1\"android:text=\"7\" /><Buttonandroid:id=\"@+id/Button08\"android:layout_width=\"wrap_content\"android:layout_height=\"wrap_content\"android:layout_weight=\"1\"android:text=\"8\" /><Buttonandroid:id=\"@+id/Button09\"android:layout_width=\"wrap_content\"android:layout_height=\"wrap_content\"android:layout_weight=\"1\"android:text=\"9\" /><Buttonandroid:id=\"@+id/ButtonJia\"android:layout_width=\"wrap_content\"android:layout_height=\"wrap_content\"android:layout_weight=\"1\"android:text=\"+\" /></LinearLayout><LinearLayoutandroid:layout_width=\"match_parent\"android:layout_height=\"wrap_content\" ><Buttonandroid:id=\"@+id/Button04\"android:layout_width=\"wrap_content\"android:layout_height=\"wrap_content\"android:layout_weight=\"1\"android:text=\"4\" /><Buttonandroid:id=\"@+id/Button05\"android:layout_width=\"wrap_content\"android:layout_height=\"wrap_content\"android:layout_weight=\"1\"android:text=\"5\" /><Buttonandroid:id=\"@+id/Button06\"android:layout_width=\"wrap_content\"android:layout_height=\"wrap_content\"android:layout_weight=\"1\"android:text=\"6\" /><Buttonandroid:id=\"@+id/ButtonJian\"android:layout_width=\"wrap_content\"android:layout_height=\"wrap_content\"android:layout_weight=\"1\"android:text=\"-\" /></LinearLayout> <LinearLayoutandroid:layout_width=\"match_parent\"android:layout_height=\"wrap_content\" ><Buttonandroid:id=\"@+id/Button01\"android:layout_width=\"wrap_content\"android:layout_height=\"wrap_content\"android:layout_weight=\"1\"android:text=\"1\" /><Buttonandroid:id=\"@+id/Button02\"android:layout_width=\"wrap_content\"android:layout_height=\"wrap_content\"android:layout_weight=\"1\"android:text=\"2\" /><Buttonandroid:id=\"@+id/Button03\"android:layout_width=\"wrap_content\"android:layout_height=\"wrap_content\"android:layout_weight=\"1\"android:text=\"3\" /><Buttonandroid:id=\"@+id/ButtonCheng\"android:layout_width=\"wrap_content\"android:layout_height=\"wrap_content\"android:layout_weight=\"1\"android:text=\"*\" /></LinearLayout><LinearLayoutandroid:layout_width=\"match_parent\"android:layout_height=\"wrap_content\" ><Buttonandroid:id=\"@+id/Button00\"android:layout_width=\"wrap_content\"android:layout_height=\"wrap_content\"android:layout_weight=\"1\"android:text=\"0\" /><Buttonandroid:id=\"@+id/ButtonC\"android:layout_width=\"wrap_content\"android:layout_height=\"wrap_content\"android:layout_weight=\"1\"android:text=\"c\" /><Buttonandroid:id=\"@+id/ButtonDengyu\"android:layout_width=\"wrap_content\"android:layout_height=\"wrap_content\"android:layout_weight=\"1\"android:text=\"=\" /><Buttonandroid:id=\"@+id/ButtonChu\"android:layout_width=\"wrap_content\"android:layout_height=\"wrap_content\"android:layout_weight=\"1\"android:text=\"/\" /></LinearLayout></LinearLayout>
表格布局
// table_main.xml<?xml version=\"1.0\" encoding=\"utf-8\"?><LinearLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"android:layout_width=\"match_parent\"android:layout_height=\"match_parent\"android:background=\"#efaa4a\"android:orientation=\"vertical\" ><TextViewandroid:id=\"@+id/tv\"android:layout_width=\"match_parent\"android:layout_height=\"40dip\"android:layout_marginTop=\"5dip\"android:layout_marginLeft=\"3dip\"android:layout_marginRight=\"3dip\"android:gravity=\"right\"android:textSize=\"30dip\"android:textColor=\"#efaa4a\"android:background=\"#ad0000\"android:text=\"\" /><TableLayoutandroid:layout_width=\"match_parent\"android:layout_height=\"wrap_content\" ><TableRowandroid:id=\"@+id/tableRow1\"android:layout_width=\"fill_parent\"android:layout_height=\"wrap_content\" ><Buttonandroid:id=\"@+id/Button07\"android:layout_width=\"wrap_content\"android:layout_height=\"wrap_content\"android:layout_weight=\"1\"android:text=\"7\" /><Buttonandroid:id=\"@+id/Button08\"android:layout_width=\"wrap_content\"android:layout_height=\"wrap_content\"android:layout_weight=\"1\"android:text=\"8\" /><Buttonandroid:id=\"@+id/Button09\"android:layout_width=\"wrap_content\"android:layout_height=\"wrap_content\"android:layout_weight=\"1\"android:text=\"9\" /><Buttonandroid:id=\"@+id/ButtonJia\"android:layout_width=\"wrap_content\"android:layout_height=\"wrap_content\"android:layout_weight=\"1\"android:text=\"+\" /></TableRow><TableRowandroid:id=\"@+id/tableRow2\"android:layout_width=\"fill_parent\"android:layout_height=\"wrap_content\" ><Buttonandroid:id=\"@+id/Button04\"android:layout_width=\"wrap_content\"android:layout_height=\"wrap_content\"android:layout_weight=\"1\"android:text=\"4\" /><Buttonandroid:id=\"@+id/Button05\"android:layout_width=\"wrap_content\"android:layout_height=\"wrap_content\"android:layout_weight=\"1\"android:text=\"5\" /><Buttonandroid:id=\"@+id/Button06\"android:layout_width=\"wrap_content\"android:layout_height=\"wrap_content\"android:layout_weight=\"1\"android:text=\"6\" /><Buttonandroid:id=\"@+id/ButtonJian\"android:layout_width=\"wrap_content\"android:layout_height=\"wrap_content\"android:layout_weight=\"1\"android:text=\"-\" /></TableRow><TableRowandroid:id=\"@+id/tableRow3\"android:layout_width=\"fill_parent\"android:layout_height=\"wrap_content\" ><Buttonandroid:id=\"@+id/Button01\"android:layout_width=\"wrap_content\"android:layout_height=\"wrap_content\"android:layout_weight=\"1\"android:text=\"1\" /><Buttonandroid:id=\"@+id/Button02\"android:layout_width=\"wrap_content\"android:layout_height=\"wrap_content\"android:layout_weight=\"1\"android:text=\"2\" /><Buttonandroid:id=\"@+id/Button03\"android:layout_width=\"wrap_content\"android:layout_height=\"wrap_content\"android:layout_weight=\"1\"android:text=\"3\" /><Buttonandroid:id=\"@+id/ButtonCheng\"android:layout_width=\"wrap_content\"android:layout_height=\"wrap_content\"android:layout_weight=\"1\"android:text=\"*\" /></TableRow><TableRowandroid:id=\"@+id/tableRow4\"android:layout_width=\"fill_parent\"android:layout_height=\"wrap_content\" ><Buttonandroid:id=\"@+id/Button00\"android:layout_width=\"wrap_content\"android:layout_height=\"wrap_content\"android:layout_weight=\"1\"android:text=\"0\" /><Buttonandroid:id=\"@+id/ButtonC\"android:layout_width=\"wrap_content\"android:layout_height=\"wrap_content\"android:layout_weight=\"1\"android:text=\"c\" /><Buttonandroid:id=\"@+id/ButtonDengyu\"android:layout_width=\"wrap_content\"android:layout_height=\"wrap_content\"android:layout_weight=\"1\"android:text=\"=\" /><Buttonandroid:id=\"@+id/ButtonChu\"android:layout_width=\"wrap_content\"android:layout_height=\"wrap_content\"android:layout_weight=\"1\"android:text=\"/\" /></TableRow></TableLayout></LinearLayout>
activity功能实现
// Sample2_2_Activity.javajavapackage 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;@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.table_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=tv.getText().toString().trim();str1=str1+String.valueOf(((Button)v).getText());//获得新输入的值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[]{ //记录数值按钮的idR.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;}});}}
欢迎指正学习!!!!!!!