Android实现简易计算功能

作者:青丝缠光阴 时间:2022-01-10 20:42:59 

本文实例为大家分享了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;
           }
       });
   }
}

来源:https://blog.csdn.net/UZDW_/article/details/117369694

标签:Android,计算
0
投稿

猜你喜欢

  • java中unicode和中文相互转换的简单实现

    2021-12-18 09:46:17
  • Java杂谈之类和对象 封装 构造方法以及代码块详解

    2022-03-13 12:38:26
  • Java设计模式之迭代模式(Iterator模式)介绍

    2022-07-24 16:03:29
  • Android EventBus(普通事件/粘性事件)详解

    2022-12-22 18:48:09
  • Android画画板的制作方法

    2022-08-25 06:08:07
  • Java中this和super的区别及this能否调用到父类使用

    2023-01-05 12:03:13
  • C#异常处理总结及简单实例

    2022-10-02 13:48:30
  • C#发送内置图片html格式邮件的方法

    2021-11-14 08:07:42
  • C#对多个集合和数组的操作方法(合并,去重,判断)

    2021-12-11 14:02:44
  • C#隐式运行CMD命令(隐藏命令窗口)

    2023-05-03 17:41:32
  • Java内部类知识汇总

    2023-08-18 14:06:54
  • 详解Springboot对多线程的支持

    2023-09-21 02:18:21
  • 详解SpringBoot工程的三种搭建方式

    2022-09-20 21:47:23
  • C# 使用Log4net添加日志记录的方法

    2021-11-16 01:57:23
  • Android 自定义imageview实现图片缩放实例详解

    2023-03-08 10:56:08
  • 深入C# 内存管理以及优化的方法详解

    2021-10-24 14:24:03
  • android 实现控件左右或上下抖动教程

    2023-03-19 17:02:07
  • flutter实现appbar下选项卡切换

    2023-06-21 13:35:24
  • C#将html table 导出成excel实例

    2023-12-20 04:58:55
  • 23种设计模式(7) java代理模式

    2023-01-28 21:57:20
  • asp之家 软件编程 m.aspxhome.com