简易计算器的设计实现

采用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>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值