Android实现简易计算功能

2021-09-14 0 593

本文实例为大家分享了Android实现简易计算功能的具体代码,供大家参考,具体内容如下

效果如图:

Android实现简易计算功能

activity_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:gravity=\"clip_horizontal\"
    android:orientation=\"vertical\"
    android:padding=\"30dp\">

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

        <TextView
            android:layout_width=\"wrap_content\"
            android:layout_height=\"wrap_content\"
            android:layout_weight=\"1\"
            android:text=\"操作数:\"
            android:textSize=\"20sp\" />

        <EditText
            android:id=\"@+id/firstNum\"
            android:layout_width=\"wrap_content\"
            android:layout_height=\"wrap_content\"
            android:layout_weight=\"1\"
            android:hint=\"请输入数值操作数\"
            android:textStyle=\"bold\"
            android:inputType=\"number\" />
    </LinearLayout>

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

        <TextView
            android:layout_width=\"wrap_content\"
            android:layout_height=\"wrap_content\"
            android:layout_weight=\"1\"
            android:text=\"算术运算:\"
            android:textSize=\"20sp\">

        </TextView>

        <Spinner
            android:id=\"@+id/operator\"
            android:layout_width=\"wrap_content\"
            android:layout_height=\"wrap_content\"
            android:layout_weight=\"1\"
            android:entries=\"@array/sign\" />
    </LinearLayout>

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

        <TextView
            android:layout_width=\"wrap_content\"
            android:layout_height=\"wrap_content\"
            android:layout_weight=\"1\"
            android:text=\"操作数:\"
            android:textSize=\"20sp\" />

        <EditText
            android:id=\"@+id/secondNum\"
            android:layout_width=\"wrap_content\"
            android:layout_height=\"wrap_content\"
            android:layout_weight=\"1\"
            android:hint=\"请输入数值操作数\"
            android:textStyle=\"bold\"
            android:inputType=\"number\" />
    </LinearLayout>

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

        <Button
            android:id=\"@+id/calc\"
            android:layout_width=\"wrap_content\"
            android:layout_height=\"wrap_content\"
            android:layout_weight=\"1\"
            android:text=\"等于:\" />

        <TextView
            android:id=\"@+id/result\"
            android:layout_width=\"wrap_content\"
            android:layout_height=\"wrap_content\"
            android:layout_weight=\"5\"
            android:hint=\"计算结果\"
            android:padding=\"15dp\"
            android:textColor=\"#F44336\"
            android:textSize=\"25sp\"
            android:textStyle=\"bold\" />
    </LinearLayout>
</LinearLayout>

arrays.xml

<?xml version=\"1.0\" encoding=\"utf-8\"?>
<resources>
    <string-array name=\"sign\">
        <item>请选择运算符</item>
        <item>+</item>
        <item>-</item>
        <item>*</item>
        <item>/</item>
    </string-array>
</resources>

MainActivity

package com.jld.homework;

import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.TextView;

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {
    String op;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Spinner spinner = (Spinner) this.findViewById(R.id.operator);//获取活动布局中的Spinner对象
        //为Spinner注册内部监听器对象
        spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                //将Spinner选项的值赋值给成员变量op(保存算术运算符)
                op = ((TextView) view).getText().toString();
            }
            @Override
            public void onNothingSelected(AdapterView<?> parent) {
            }
        });

        //各类组件
        Button calcButton = findViewById(R.id.calc);
        EditText firstNum = findViewById(R.id.firstNum);
        EditText secondNum = findViewById(R.id.secondNum);
        TextView result = findViewById(R.id.result);

        //计算核心
        calcButton.setOnClickListener(v -> {
            switch (op) {
                case \"+\": {
                    double r = Double.parseDouble(firstNum.getText().toString()) + Double.parseDouble(secondNum.getText().toString());
                    result.setText(String.valueOf(r));
                    break;
                }
                case \"-\": {
                    double r = Double.parseDouble(firstNum.getText().toString()) - Double.parseDouble(secondNum.getText().toString());
                    result.setText(String.valueOf(r));
                    break;
                }
                case \"*\": {
                    double r = Double.parseDouble(firstNum.getText().toString()) * Double.parseDouble(secondNum.getText().toString());
                    result.setText(String.valueOf(r));
                    break;
                }
                case \"/\": {
                    double r = Double.parseDouble(firstNum.getText().toString()) / Double.parseDouble(secondNum.getText().toString());
                    result.setText(String.valueOf(r));
                    break;
                }
                default://非法情况报错
                    result.setText(R.string.ERROR);
                    break;
            }
        });
    }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持自学编程网。

遇见资源网 Android Android实现简易计算功能 http://www.ox520.com/24271.html

常见问题

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务