采用LinearLayout 布局。
java代码:
public class MainActivity extends Activity {
private Button zero;
private Button one;
private Button two;
private Button three;
private Button four;
private Button five;
private Button six;
private Button seven;
private Button eight;
private Button nine;
private Button cheng;
private Button chu;
private Button jia;
private Button jian;
private Button dengyu;
private Button C;
private EditText et;
int signstate =0;//判断是否有符号,初始化没有符号0
String num1="";//字符串下的第一个数
String num2="";//字符串下的第二个数
int z;//得数的整型形式
String sign=null;//符号位,初始化为空
boolean flag =true;//判断加减乘除号的标志,有num
String result =""; //得数的字符串形式
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//导入布局
setContentView(R.layout.activity_main);
//初始化各个键
et = (EditText) findViewById(R.id.et1);
zero =(Button) findViewById(R.id.bt_0);
one = (Button) findViewById(R.id.bt_1);
two = (Button) findViewById(R.id.bt_2);
three = (Button) findViewById(R.id.bt_3);
four = (Button) findViewById(R.id.bt_4);
five = (Button) findViewById(R.id.bt_5);
six = (Button) findViewById(R.id.bt_6);
seven = (Button) findViewById(R.id.bt_7);
eight = (Button) findViewById(R.id.bt_8);
nine = (Button) findViewById(R.id.bt_9);
jia = (Button) findViewById(R.id.jia);
jian = (Button) findViewById(R.id.jian);
cheng = (Button) findViewById(R.id.cheng);
chu = (Button) findViewById(R.id.chu);
dengyu = (Button) findViewById(R.id.deng);
C = (Button) findViewById(R.id.bt_c);
zero.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// 判断输入框没有sign
if (signstate==0){
num1=num1 + "0" ;
et.setText(num1);
}
// 判断输入框已经有sign
if (signstate==1){
num2 = num2 + "0" ;
et.setText(num1 + sign +num2);
}
}
});
one.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// 判断输入框没有符号
if (signstate==0){
num1 = num1 + "1" ;
et.setText(num1);
}
// 判断输入框已经有符号
if (signstate==1){
num2 = num2 + "1" ;
et.setText(num1 + sign +num2);
}
}
});
two.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// 判断输入框没有符号
if (signstate==0){
num1 = num1 + "2" ;
et.setText(num1);
}
// 判断输入框已经有符号
if (signstate==1){
num2 = num2 + "2" ;
et.setText(num1 + sign +num2);
}
}
});
three.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// 判断输入框没有符号
if (signstate==0){
num1 = num1 + "3" ;
et.setText(num1);
}
// 判断输入框已经有符号
if (signstate==1){
num2 = num2 + "3" ;
et.setText(num1 + sign +num2);
}
}
});
four.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// 判断输入框没有符号
if (signstate==0){
num1 = num1 + "4" ;
et.setText(num1);
}
// 判断输入框已经有符号
if (signstate==1){
num2 = num2 + "4" ;
et.setText(num1 + sign +num2);
}
}
});
five.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// 判断输入框没有符号
if (signstate==0){
num1 = num1 + "5" ;
et.setText(num1);
}
// 判断输入框已经有符号
if (signstate==1){
num2 = num2 + "5" ;
et.setText(num1 + sign +num2);
}
}
});
six.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// 判断输入框没有符号
if (signstate==0){
num1 = num1 + "6" ;
et.setText(num1);
}
// 判断输入框已经有符号
if (signstate==1){
num2 = num2 + "6" ;
et.setText(num1 + sign +num2);
}
}
});
seven.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// 判断输入框没有符号
if (signstate==0){
num1 = num1 + "7" ;
et.setText(num1);
}
// 判断输入框已经有符号
if (signstate==1){
num2 = num2 + "7" ;
et.setText(num1 + sign +num2);
}
}
});
eight.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// 判断输入框没有符号
if (signstate==0){
num1 = num1 + "8" ;
et.setText(num1);
}
// 判断输入框已经有符号
if (signstate==1){
num2 = num2 + "8" ;
et.setText(num1 + sign +num2);
}
}
});
nine.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// 判断输入框没有数
if (signstate==0){
num1 = num1 + "9" ;
et.setText(num1);
}
// 判断输入框已经有数
if (signstate==1){
num2 = num2 + "9" ;
et.setText(num1 + sign +num2);
}
}
});
jia.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if (flag) {
sign = "+"; //按下后给相应的字符串
signstate=1; //标志++
flag = false; //不能再填其他符号
}
}
});
chu.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if (flag) {
sign = "÷";
signstate++;
flag = false;
}
}
});
jian.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if (flag) {
sign = "-";
signstate++;
flag = false;
}
}
});
cheng.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if (flag) {
sign = "*";
signstate++;
flag = false;
}
}
});
dengyu.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
flag = true;
if (sign.equals("+")) {
// 字符串转整型
int x = Integer.parseInt(num1);
int y = Integer.parseInt(num2);
//算出得数
z = x + y;
//将得数转换成字符串
result = String.valueOf(z);
//公式得数输出到编辑栏中
et.setText(num1 + sign + num2 + "=" + result);
}
if (sign.equals("-")) {
// 字符串转整型
int x = Integer.parseInt(num1);
int y = Integer.parseInt(num2);
z = x - y;
result = String.valueOf(z);
et.setText(num1 + sign + num2 + "=" + result);
}
if (sign.equals("*")) {
// 字符串转整型
int x = Integer.parseInt(num1);
int y = Integer.parseInt(num2);
z = x * y;
result = String.valueOf(z);
et.setText(num1 + sign + num2 + "=" + result);
}
if (sign.equals("÷")) {
// 字符串转整型
int x = Integer.parseInt(num1);
int y= Integer.parseInt(num2);
if (y != 0) {
z = x / y;
result = String.valueOf(z);
et.setText(num1 + sign + num2 + "=" + result);
}else {
et.setText("∞");
Toast.makeText(MainActivity.this, "除数不能为0", 0).show();
}
}
}
});
C.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
//恢复初始化
num1 = "";
num2 = "";
z = 0;
signstate = 0;
sign = "";
flag = true;
et.setText("0");
}
});
}
}
布局:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity" >
<EditText
android:id="@+id/et1"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:gravity="right|center_vertical"
/>
<LinearLayout
android:id="@+id/ll_1"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:orientation="horizontal"
>
<Button
android:id="@+id/bt_7"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="7"
/>
<Button
android:id="@+id/bt_8"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="8"
/>
<Button
android:id="@+id/bt_9"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="9"
/>
<Button
android:id="@+id/chu"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="÷"
/>
</LinearLayout>
<LinearLayout
android:id="@+id/ll_2"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:orientation="horizontal"
>
<Button
android:id="@+id/bt_4"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="4"
/>
<Button
android:id="@+id/bt_5"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="5"
/>
<Button
android:id="@+id/bt_6"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="6"
/>
<Button
android:id="@+id/cheng"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="*"
/>
</LinearLayout>
<LinearLayout
android:id="@+id/ll_3"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:orientation="horizontal"
>
<Button
android:id="@+id/bt_1"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="1"
/>
<Button
android:id="@+id/bt_2"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="2"
/>
<Button
android:id="@+id/bt_3"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="3"
/>
<Button
android:id="@+id/jian"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="-"
/>
</LinearLayout>
<LinearLayout
android:id="@+id/ll_4"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:orientation="horizontal"
>
<Button
android:id="@+id/bt_c"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="c"
/>
<Button
android:id="@+id/bt_0"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="0"
/>
<Button
android:id="@+id/deng"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="="
/>
<Button
android:id="@+id/jia"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="+"
/>
</LinearLayout>
</LinearLayout>