首頁 > 軟體

android studio實現簡單的計算器小功能

2022-05-20 13:00:07

本文範例為大家分享了android studio實現簡單計算器的具體程式碼,供大家參考,具體內容如下

佈局:

<?xml version="1.0" encoding="utf-8"?>
<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"
    android:background="@color/white"
    tools:context="com.example.jisuanqi.MainActivity">
 
 
    <TextView
        android:id="@+id/screenshow"
        android:layout_width="match_parent"
        android:layout_height="200dp"
        android:background="@android:color/white"
        android:textColor="@color/black"
        android:textSize="50sp"/>
 
 
    //各按鍵
 
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center">
 
 
            <Button
                android:layout_width="160dp"
                android:layout_height="80dp"
                android:text="÷"
                android:textSize="45sp"
                android:id="@+id/divide"
                />
            <Button
                android:layout_width="80dp"
                android:layout_height="80dp"
                android:text="×"
                android:textSize="45sp"
                android:id="@+id/times" />
            <Button
                android:layout_width="80dp"
                android:layout_height="80dp"
                android:text="C"
                android:textSize="40sp"
                android:id="@+id/button_C" />
        </LinearLayout>
 
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center">
 
            <Button
                android:layout_width="80dp"
                android:layout_height="80dp"
                android:text="7"
                android:textSize="40sp"
                android:id="@+id/button_7" />
            <Button
                android:layout_width="80dp"
                android:layout_height="80dp"
                android:text="8"
                android:textSize="40sp"
                android:id="@+id/button_8" />
            <Button
                android:layout_width="80dp"
                android:layout_height="80dp"
                android:text="9"
                android:textSize="40sp"
                android:id="@+id/button_9" />
            <Button
                android:layout_width="80dp"
                android:layout_height="80dp"
                android:text="+"
                android:textSize="40sp"
                android:id="@+id/button_add" />
 
        </LinearLayout>
 
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center">
 
            <Button
                android:layout_width="80dp"
                android:layout_height="80dp"
                android:text="4"
                android:textSize="40sp"
                android:id="@+id/button_4" />
            <Button
                android:layout_width="80dp"
                android:layout_height="80dp"
                android:text="5"
                android:textSize="40sp"
                android:id="@+id/button_5" />
            <Button
                android:layout_width="80dp"
                android:layout_height="80dp"
                android:text="6"
                android:textSize="40sp"
                android:id="@+id/button_6" />
            <Button
                android:layout_width="80dp"
                android:layout_height="80dp"
                android:text="-"
                android:textSize="50sp"
                android:id="@+id/button_minus" />
 
        </LinearLayout>
 
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center">

            <Button
                android:layout_width="80dp"
                android:layout_height="80dp"
                android:text="1"
                android:textSize="40sp"
                android:id="@+id/button_1" />
            <Button
                android:layout_width="80dp"
                android:layout_height="80dp"
                android:text="2"
                android:textSize="40sp"
                android:id="@+id/button_2" />
            <Button
                android:layout_width="80dp"
                android:layout_height="80dp"
                android:text="3"
                android:textSize="40sp"
                android:id="@+id/button_3" />
            <Button
                android:layout_width="80dp"
                android:layout_height="80dp"
                android:text="."
                android:textSize="45sp"
                android:id="@+id/button_dot" />
 
        </LinearLayout>
 
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center">
 
            <Button
                android:layout_width="160dp"
                android:layout_height="80dp"
                android:text="0"
                android:textSize="40sp"
                android:id="@+id/button_0" />

            <Button
                android:layout_width="160dp"
                android:layout_height="80dp"
                android:text="="
                android:textSize="45sp"
                android:id="@+id/button_equal" />
 
        </LinearLayout>
    </LinearLayout>
</LinearLayout>

java程式碼:

package com.example.jisuanqi;
 
import android.support.v4.app.INotificationSideChannel;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.app.Activity;
import android.widget.TextView;
import android.widget.Toast;
 
public class MainActivity extends Activity  {
    private TextView windowshow;
    private Button   but_0,but_1,but_2,but_3,but_4,but_5,but_6,but_7,but_8,but_9,but_C,divide,
            multiply,but_add,but_minus,but_dot,but_equal;
    double first_num=0,second_num=0;
    double result=0;
    int operation=0;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        windowshow=(TextView)findViewById(R.id.screenshow);
        but_0=(Button)findViewById(R.id.button_0);
        but_0.setOnClickListener(new MyOnClickListener());
        but_1=(Button)findViewById(R.id.button_1);
        but_1.setOnClickListener(new MyOnClickListener());
        but_2=(Button)findViewById(R.id.button_2);
        but_2.setOnClickListener(new MyOnClickListener());
        but_3=(Button)findViewById(R.id.button_3);
        but_3.setOnClickListener(new MyOnClickListener());
        but_4=(Button)findViewById(R.id.button_4);
        but_4.setOnClickListener(new MyOnClickListener());
        but_5=(Button)findViewById(R.id.button_5);
        but_5.setOnClickListener(new MyOnClickListener());
        but_6=(Button)findViewById(R.id.button_6);
        but_6.setOnClickListener(new MyOnClickListener());
        but_7=(Button)findViewById(R.id.button_7);
        but_7.setOnClickListener(new MyOnClickListener());
        but_8=(Button)findViewById(R.id.button_8);
        but_8.setOnClickListener(new MyOnClickListener());
        but_9=(Button)findViewById(R.id.button_9);
        but_9.setOnClickListener(new MyOnClickListener());
        but_add=(Button)findViewById(R.id.button_add);
        but_add.setOnClickListener(new MyOnClickListener());
        but_C=(Button)findViewById(R.id.button_C);
        but_C.setOnClickListener(new MyOnClickListener());
        divide=(Button)findViewById(R.id.divide);
        divide.setOnClickListener(new MyOnClickListener());
        but_dot=(Button)findViewById(R.id.button_dot);
        but_dot.setOnClickListener(new MyOnClickListener());
        but_equal=(Button)findViewById(R.id.button_equal);
        but_equal.setOnClickListener(new MyOnClickListener());
        but_minus=(Button)findViewById(R.id.button_minus);
        but_minus.setOnClickListener(new MyOnClickListener());
        multiply=(Button)findViewById(R.id.times);
        multiply.setOnClickListener(new MyOnClickListener());
    }
 
    class MyOnClickListener implements  View.OnClickListener{
        public void onClick(View v){
            switch (v.getId()){
                case R.id.button_C:
                    windowshow.setText(null);
                    break;
                case R.id.button_0:
                    String str0=windowshow.getText().toString();
                    str0+="0";
                    windowshow.setText(str0);
                    break;
                case R.id.button_1:
                    String str1=windowshow.getText().toString();
                    str1+="1";
                    windowshow.setText(str1);
                    break;
                case R.id.button_2:
                    String str2=windowshow.getText().toString();
                    str2+="2";
                    windowshow.setText(str2);
                    break;
                case R.id.button_3:
                    String str3=windowshow.getText().toString();
                    str3+="3";
                    windowshow.setText(str3);
                    break;
                case R.id.button_4:
                    String str4=windowshow.getText().toString();
                    str4+="4";
                    windowshow.setText(str4);
                    break;
                case R.id.button_5:
                    String str5=windowshow.getText().toString();
                    str5+="5";
                    windowshow.setText(str5);
                    break;
                case R.id.button_6:
                    String str6=windowshow.getText().toString();
                    str6+="6";
                    windowshow.setText(str6);
                    break;
                case R.id.button_7:
                    String str7=windowshow.getText().toString();
                    str7+="7";
                    windowshow.setText(str7);
                    break;
                case R.id.button_8:
                    String str8=windowshow.getText().toString();
                    str8+="8";
                    windowshow.setText(str8);
                    break;
                case R.id.button_9:
                    String str9=windowshow.getText().toString();
                    str9+="9";
                    windowshow.setText(str9);
                    break;
                case R.id.button_dot:
                    String strdot=windowshow.getText().toString();
                    strdot+=".";
                    windowshow.setText(strdot);
                    break;
                case R.id.button_add:
                    String stradd=windowshow.getText().toString();
                    if(stradd.equals(null)){
                        return;
                    }
                    first_num=Double.valueOf(stradd);
                    stradd+="+";
                    windowshow.setText(null);
                    operation=1;
                    break;
                case R.id.button_minus:
                    String strminus=windowshow.getText().toString();
                    if(strminus.equals(null)){
                        return;
                    }
                    first_num=Double.valueOf(strminus);
                    strminus+="-";
                    windowshow.setText(null);
                    operation=2;
                    break;
                case R.id.times:
                    String strmultiply=windowshow.getText().toString();
                    if(strmultiply.equals(null)){
                        return;
                    }
                    first_num=Double.valueOf(strmultiply);
                    strmultiply+="*";
                    windowshow.setText(null);
                    operation=3;
                    break;
                case R.id.divide:
                    String strdivide=windowshow.getText().toString();
                    if(strdivide.equals(null)){
                        return;
                    }
                    first_num=Double.valueOf(strdivide);
                    strdivide+="/";
                    windowshow.setText(null);
                    operation=4;
                    break;
                case R.id.button_equal:
                    String strequ=windowshow.getText().toString();
                    second_num=Double.valueOf(strequ);
                    // windowshow.setText(null);
                    switch (operation){
                        case 1:
                            result=first_num+second_num;
                            windowshow.setText(String.valueOf(first_num)+"+"+String.valueOf(second_num)+"="+String.valueOf(result));
                            break;
                        case 2:
                            result=first_num-second_num;
                            windowshow.setText(String.valueOf(first_num)+"-"+String.valueOf(second_num)+"="+String.valueOf(result));
                            break;
                        case 3:
                            result=first_num*second_num;
                            windowshow.setText(String.valueOf(first_num)+"×"+String.valueOf(second_num)+"="+String.valueOf(result));
                            break;
                        case 4:
                            if(second_num==0){
                                windowshow.setText("被除數不能為0!");
                            }
                            else {
                                result = first_num / second_num;
                                windowshow.setText(String.valueOf(first_num) + "÷" + String.valueOf(second_num) + "=" + String.valueOf(result));
                            }
                            break;
                        case 5:
                            result=first_num/100;
                            windowshow.setText(String.valueOf(first_num) + "%" +"="+String.valueOf(result));
                            break;
 
                        default:
                            result=0;
                            break;
                    }
            }
 
        }
    }
}

效果圖: 

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援it145.com。


IT145.com E-mail:sddin#qq.com