Android开发:kotlin语言实现简易计算器

这篇具有很好参考价值的文章主要介绍了Android开发:kotlin语言实现简易计算器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 实现效果

  • 输入两个数字,可选加减乘除操作符,并计算显示对应结果

  • 随系统切换语言

  • 可对结果进行四舍五入操作

Android开发:kotlin语言实现简易计算器Android开发:kotlin语言实现简易计算器

2. 主要文件代码:

界面布局:activity_main.xml文件代码

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <RadioGroup
        android:id="@+id/radioGroup"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="25dp"
        android:layout_marginTop="64dp"
        android:layout_marginBottom="456dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent">

        <TextView
            android:id="@+id/textView"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/operator"
            android:textColor="@color/purple_700"
            android:textSize="20sp"
            android:textStyle="bold" />

        <RadioButton
            android:id="@+id/add_opt"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:checked="false"
            android:text="@string/add"
            android:textColor="@color/black"
            android:textSize="16sp" />

        <RadioButton
            android:id="@+id/sub_opt"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/sub"
            android:textColor="@color/black"
            android:textSize="16sp" />

        <RadioButton
            android:id="@+id/mul_opt"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/mul"
            android:textColor="@color/black"
            android:textSize="16sp" />

        <RadioButton
            android:id="@+id/div_opt"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/div"
            android:textColor="@color/black"
            android:textSize="16sp" />

    </RadioGroup>

    <EditText
        android:id="@+id/number1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="36dp"
        android:layout_marginTop="64dp"
        android:layout_marginEnd="36dp"
        android:autofillHints=""
        android:ems="10"
        android:hint="@string/please_input_a_number1"
        android:inputType="numberDecimal"
        android:minHeight="48dp"
        android:textColorHint="#757575"
        android:textSize="20sp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toEndOf="@+id/radioGroup"
        app:layout_constraintTop_toTopOf="parent"
        tools:ignore="SpeakableTextPresentCheck" />

    <EditText
        android:id="@+id/number2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="36dp"
        android:layout_marginTop="32dp"
        android:layout_marginEnd="36dp"
        android:autofillHints=""
        android:ems="10"
        android:hint="@string/please_input_a_number2"
        android:inputType="numberDecimal"
        android:minHeight="48dp"
        android:textColorHint="#757575"
        android:textSize="20sp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toEndOf="@+id/radioGroup"
        app:layout_constraintTop_toBottomOf="@+id/number1"
        tools:ignore="SpeakableTextPresentCheck" />

    <TextView
        android:id="@+id/calcResult"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="32dp"
        tools:text="Result: 0.0"
        android:textColor="@color/purple_700"
        android:textSize="24sp"
        android:textStyle="bold"
        app:layout_constraintEnd_toEndOf="@+id/number2"
        app:layout_constraintStart_toStartOf="@+id/number2"
        app:layout_constraintTop_toBottomOf="@+id/number2" />

    <Button
        android:id="@+id/calculate"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginHorizontal="10dp"
        android:layout_marginBottom="300dp"
        android:text="@string/calculate"
        android:textSize="16sp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toEndOf="@+id/clear" />

    <Button
        android:id="@+id/clear"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginHorizontal="10dp"
        android:layout_marginBottom="300dp"
        android:text="@string/clear"
        android:textSize="16sp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toStartOf="@+id/calculate"
        app:layout_constraintStart_toStartOf="parent" />

    <Switch
        android:id="@+id/roundUpResult"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="32dp"
        android:layout_marginTop="32dp"
        android:layout_marginBottom="32dp"
        android:checked="true"
        android:minHeight="48dp"
        android:text="@string/round_up_result"
        android:textSize="20sp"
        app:layout_constraintBottom_toTopOf="@+id/calculate"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/radioGroup" />
</androidx.constraintlayout.widget.ConstraintLayout>

字符定义:string.xml文件代码

<resources>
    <string name="app_name">Calculator</string>
    <string name="operator">Operator</string>
    <string name="add">Add</string>
    <string name="sub">Sub</string>
    <string name="mul">Mul</string>
    <string name="div">Div</string>
    <string name="calc_result">Result: %s</string>
    <string name="clear">Clear</string>
    <string name="calculate">Calculate</string>
    <string name="please_input_a_number1">The First Number</string>
    <string name="please_input_a_number2">The Second Number</string>
    <string name="round_up_result">Round Up Result?</string>
</resources>

逻辑实现:MainActivity.kt 文件代码

package com.example.calculator

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import com.example.calculator.databinding.ActivityMainBinding
import kotlin.math.round

class MainActivity : AppCompatActivity() {
    private lateinit var binding: ActivityMainBinding
    override fun onCreate(savedInstanceState: Bundle?) {
        binding = ActivityMainBinding.inflate(layoutInflater)
        super.onCreate(savedInstanceState)
        setContentView(binding.root)
        binding.calculate.setOnClickListener { calculate() }
        binding.clear.setOnClickListener { clear() }
        displayResult(0.0)
    }

    private fun calculate() {
        val num1 = binding.number1.text.toString().toDoubleOrNull()
        val num2 = binding.number2.text.toString().toDoubleOrNull()


        if (num1 == null) {
            displayResult(0.0)
            return
        }
        if (num2 == null) {
            displayResult(0.0)
            return
        }

        // 获取
        var calResult = when(binding.radioGroup.checkedRadioButtonId){
            R.id.add_opt -> num1+num2
            R.id.sub_opt -> num1-num2
            R.id.mul_opt -> num1*num2
            R.id.div_opt -> if (num2 != 0.0) {
                num1/num2
            } else { 0.0 }
            else -> { 0.0 }
        }

        calResult = String.format("%.2f", calResult).toDouble()

        // 是否四舍五入?
        if (binding.roundUpResult.isChecked) {
            calResult = round(calResult)
        }
        displayResult(calResult)
    }

    fun displayResult(result: Double) {
        // 结果显示
        binding.calcResult.text = getString(R.string.calc_result,result.toString())
    }


    fun clear(){
        // 清空操作
        binding.number1.text.clear()
        binding.number2.text.clear()
        displayResult(0.0)
        binding.radioGroup.clearCheck()
        binding.roundUpResult.isChecked = true
    }
}

3. 具体实现步骤

方法一(偷懒):

复制文件到对应位置

方法二:

  • 1. 绘制界面

Android开发:kotlin语言实现简易计算器

  • 2. 编写逻辑代码

    本例为了简化,使用了viewbinding 绑定方法,并未使用findViewById()。故需进行以下处理:

    在build.gradle(Module: Calulate.app) 文件添加以下代码:

        buildFeatures{
            viewBinding = true
        }
    

Android开发:kotlin语言实现简易计算器

如报错,需在gradle.properties 文件中加入以下代码:

android.enableD8=true
android.injected.testOnly=false
android.enableJetifier=true

然后便可以使用viewbinding绑定方法(当然大家可以使用findViewById,笔者认为麻烦)

最后复制MainActivity.kt文件代码即可,逻辑不难,故不讲解文章来源地址https://www.toymoban.com/news/detail-404622.html

  • 3. 设置多语言

Android开发:kotlin语言实现简易计算器
Android开发:kotlin语言实现简易计算器
Android开发:kotlin语言实现简易计算器
Android开发:kotlin语言实现简易计算器

然后便可以使用viewbinding绑定方法(当然大家可以使用findViewById,笔者认为麻烦)

最后复制MainActivity.kt文件代码即可,逻辑不难,故不讲解

到了这里,关于Android开发:kotlin语言实现简易计算器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Android Studio】简易计算器

    简易计算器要求: 1,操作简单,易于掌握,界面简单。 2.方便进行加,减,乘,除等操作。数字保留小数点后两位。 3.包含小数点运算和输入回退功能。 4.能够进行多次叠加运算。 5.系统能够进行多次叠加运算。 6.系统可以稳定运行。 功能图如下: 逻辑流程图如下: 项目建

    2024年02月08日
    浏览(35)
  • 【Android】控件与布局入门 - 简易计算器

    目录 1. 基础开发环境 2. 计算器的布局和相关按钮 3. 计算器的主要运算逻辑 4. APK 文件 5. 项目源码 JDK:JDK17 Android Studio:Android Studio Giraffe | 2022.3.1 Android SDK:Android API 34 Gradle: gradle-8.0-bin.zip 使用 LinearLayout 和 GridLayout 实现计算器的交互前端。 layout 文件如下 相关 values 如下:

    2024年02月14日
    浏览(42)
  • OpenHarmony开发实战:简易计算器(ArkTS)

    本篇Codelab基于基础组件、容器组件,实现一个支持加减乘除混合运算的计算器。   说明:  由于数字都是双精度浮点数,在计算机中是二进制存储数据的,因此小数和非安全整数(超过整数的安全范围[-Math.pow(2, 53),Math.pow(2, 53)]的数据)在计算过程中会存在精度丢失的情况

    2024年04月29日
    浏览(53)
  • Web前端开发 小实训(二) 简易计算器

    学生能够使用函数完成简易计算器编写 中文 英语 加法 add 减法 subtract 乘法 multi 除法 division 次幂 pow() 平方根 sqrt() 提示: 除法中的除数不能为0! 参考代码: 参考代码 步骤3-4参考代码 申明方法后,在每个分支后调用 最后直接调用运行页面 因面向的是初学Web前端课程的学生

    2024年04月28日
    浏览(39)
  • 移动开发作业三:使用Android studio来实现简单的计算器

    一.实验要求 结合所学内容利用Android studio来设计一个开发实例,这里去我选择做一个简易的计算器,可以初步实现加减乘除。 二.实验功能 该计算器与我们平常手机上的计算器一样,可以进行加减乘除操作。 三.实验过程 1.首先是关于计算器的布局 在layout文件下的drawable文件

    2024年02月02日
    浏览(38)
  • C++简易计算器的实现

    定义: 计算器是近代人发明的可以进行数字运算的机器。 也就是说,计算器不等同于算盘,前者能自行运算,后者只能简便计算过程,在古代,人们发明了许多计算工具,如算筹、算盘、计算尺等,随着社会的发展和科技的进步,计算工具也经历了由简单到复杂,由低级向高级的发

    2024年02月11日
    浏览(38)
  • QT简易加法计算器项目实现

    完整代码见GitHub:点击进入 在该项目中,使用了三个文件,分别是CalculatorDialog.h, CalculatorDialog.cpp, main.cpp CalculatorDialog.h:在该头文件里定义了一些成员变量和槽函数,用于实现计算器基本功能。 CalculatorDialog.cpp: CalculatorDialog 类的构造函数,用于初始化计算器对话框界面和控

    2024年02月11日
    浏览(38)
  • Java课设-百行代码实现简易计算器

    Java程序设计 工程实践 ——简易计算器的设计 院、 系 计算机与软件学院 专业 信息安全 姓 名 指导教师 2022年 6 月 11 日 目录: 一、 设计简介 2 1、 设计背景 2 2、 开发工具及环境 2 (1)开发工具及介绍 2 (2)开发环境 2 二、 相关工作 2 1、设计基础 2 2、功能需求 2 3、系统

    2024年02月04日
    浏览(68)
  • JAVA课程设计——GUI实现简易计算器

    一.设计任务及要求 任务:设计并实现一个计算器小程序 要求: 使用图形用户界面 能在键盘或鼠标上读入数据,并完成加,减,乘,除计算。 在屏幕上显示一个主菜单。 提示用户输入相应的数字键,分别执行加,减,乘,除计算功能和结束程序的功能。 二.需求分析: ​ 计算

    2024年02月12日
    浏览(36)
  • 【Servlet学习三】实现一个内存版本的简易计算器~

    目录 一、方式1:使用form表单的形式(不推荐) 🌈1、前端代码:HTML文件 🌈2、后端代码:Calculator_form.java文件 🌈3、最终效果 二、方式2:使用ajax形式(最常用重点!!!) 🌈1、前端代码:HTML文件 🌈2、后端代码:Calculator_ajax.java文件 🌈3、最终效果  注意: (1)前端

    2024年02月12日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包