您的位置:首页 > 移动开发 > Android开发

希望对大家有用:android实现计算器功能

2020-07-14 05:59 831 查看

希望对大家有用:android实现计算器功能

线性布局

// 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" >

<TextView
android: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="" />

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >

<Button
android:id="@+id/Button07"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="7" />

<Button
android:id="@+id/Button08"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="8" />

<Button
android:id="@+id/Button09"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="9" />

<Button
android:id="@+id/ButtonJia"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="+" />

</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >

<Button
android:id="@+id/Button04"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="4" />

<Button
android:id="@+id/Button05"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="5" />

<Button
android:id="@+id/Button06"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="6" />

<Button
android:id="@+id/ButtonJian"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="-" />

</LinearLayout> <LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >

<Button
android:id="@+id/Button01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="1" />

<Button
android:id="@+id/Button02"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="2" />

<Button
android:id="@+id/Button03"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="3" />

<Button
android:id="@+id/ButtonCheng"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="*" />

</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >

<Button
android:id="@+id/Button00"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="0" />

<Button
android:id="@+id/ButtonC"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="c" />

<Button
android:id="@+id/ButtonDengyu"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="=" />

<Button
android: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" >

<TextView
android: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="" />
<TableLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >

<TableRow
android:id="@+id/tableRow1"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<Button
android:id="@+id/Button07"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="7" />

<Button
android:id="@+id/Button08"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="8" />

<Button
android:id="@+id/Button09"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="9" />

<Button
android:id="@+id/ButtonJia"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="+" />
</TableRow>

<TableRow
android:id="@+id/tableRow2"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<Button
android:id="@+id/Button04"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="4" />

<Button
android:id="@+id/Button05"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="5" />

<Button
android:id="@+id/Button06"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="6" />

<Button
android:id="@+id/ButtonJian"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="-" />

</TableRow>

<TableRow
android:id="@+id/tableRow3"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<Button
android:id="@+id/Button01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="1" />

<Button
android:id="@+id/Button02"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="2" />

<Button
android:id="@+id/Button03"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="3" />

<Button
android:id="@+id/ButtonCheng"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="*" />

</TableRow>

<TableRow
android:id="@+id/tableRow4"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<Button
android:id="@+id/Button00"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="0" />

<Button
android:id="@+id/ButtonC"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="c" />

<Button
android:id="@+id/ButtonDengyu"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="=" />

<Button
android: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.javajava
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.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[]
{							//记录数值按钮的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;
}
}
);
}
}

欢迎指正学习!!!!!!!

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: