用Android?studio實(shí)現(xiàn)簡(jiǎn)易計(jì)算器功能
用Android studio做一個(gè)簡(jiǎn)易計(jì)算器,供大家參考,具體內(nèi)容如下
長(zhǎng)話短說(shuō),先建立一個(gè)Android項(xiàng)目;


創(chuàng)建完成后打開(kāi)activity_main.xml,構(gòu)建我們的應(yīng)用界面,輸入以下代碼:
<?xml version="1.0" encoding="utf-8"?> <GridLayout ?xmlns:android="http://schemas.android.com/apk/res/android" ? ? android:layout_width="match_parent" ? ? android:layout_height="match_parent" ? ? android:rowCount="6" ? ? android:columnCount="4" ? ? > ? ? <!--文本標(biāo)簽--> ? ? <EditText ? ? ? ? android:id="@+id/edit" ? ? ? ? android:layout_width="350dp" ? ? ? ? android:layout_height="wrap_content" ? ? ? ? android:layout_columnSpan="4" ? ? ? ? android:layout_marginLeft="4px" ? ? ? ? android:gravity="left" ? ? ? ? android:textSize="50dp" /> ? ? <Button ? ? ? ? android:id="@+id/clear" ? ? ? ? android:layout_width="353dp" ? ? ? ? android:layout_height="wrap_content" ? ? ? ? android:layout_columnSpan="4" ? ? ? ? android:text="清除" ? ? ? ? android:textSize="26sp" /> ? ? <Button ? ? ? ? android:id="@+id/btn1" ? ? ? ? android:text="1" ? ? ? ? android:textSize="26sp" /> ? ? <Button ? ? ? ? android:id="@+id/btn2" ? ? ? ? android:text="2" ? ? ? ? android:textSize="26sp" /> ? ? <Button ? ? ? ? android:id="@+id/btn3" ? ? ? ? android:text="3" ? ? ? ? android:textSize="26sp" /> ? ? <Button ? ? ? ? android:id="@+id/jia" ? ? ? ? android:text="+" ? ? ? ? android:textSize="26sp" /> ? ? <Button ? ? ? ? android:id="@+id/btn4" ? ? ? ? android:text="4" ? ? ? ? android:textSize="26sp" /> ? ? <Button ? ? ? ? android:id="@+id/btn5" ? ? ? ? android:text="5" ? ? ? ? android:textSize="26sp" /> ? ? <Button ? ? ? ? android:id="@+id/btn6" ? ? ? ? android:text="6" ? ? ? ? android:textSize="26sp" /> ? ? <Button ? ? ? ? android:id="@+id/jian" ? ? ? ? android:text="-" ? ? ? ? android:textSize="26sp" /> ? ? <Button ? ? ? ? android:id="@+id/btn7" ? ? ? ? android:text="7" ? ? ? ? android:textSize="26sp" /> ? ? <Button ? ? ? ? android:id="@+id/btn8" ? ? ? ? android:text="8" ? ? ? ? android:textSize="26sp" /> ? ? <Button ? ? ? ? android:id="@+id/btn9" ? ? ? ? android:text="9" ? ? ? ? android:textSize="26sp" /> ? ? <Button ? ? ? ? android:id="@+id/cheng" ? ? ? ? android:text="*" ? ? ? ? android:textSize="26sp" /> ? ? <Button ? ? ? ? android:id="@+id/dian" ? ? ? ? android:text="." ? ? ? ? android:textSize="26sp" /> ? ? <Button ? ? ? ? android:id="@+id/btn0" ? ? ? ? android:text="0" ? ? ? ? android:textSize="26sp" /> ? ? <Button ? ? ? ? android:id="@+id/sum" ? ? ? ? android:text="=" ? ? ? ? android:textSize="26sp" /> ? ? <Button ? ? ? ? android:id="@+id/chu" ? ? ? ? android:text="/" ? ? ? ? android:textSize="26sp" />
完成后再找到Mainactivity.java,輸入以下代碼:
package com.example.a00_ff_59_7f_7e_dc_54_3;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
? ? Button btn1, btn2, btn3, btn4, btn5, btn6, btn7, btn8, btn9, btn0; // 數(shù)字按鈕
? ? Button jia, jian, cheng, chu, dian, sum, clear;// +號(hào)
? ? EditText edit; // 顯示文本
? ? private String ss = "";
? ? @Override
? ? protected void onCreate(Bundle savedInstanceState) {
? ? ? ? super.onCreate(savedInstanceState);
? ? ? ? setContentView(R.layout.activity_main);
? ? ? ? // 獲取頁(yè)面上的控件
? ? ? ? btn1 = (Button) findViewById(R.id.btn1);
? ? ? ? btn2 = (Button) findViewById(R.id.btn2);
? ? ? ? btn3 = (Button) findViewById(R.id.btn3);
? ? ? ? btn4 = (Button) findViewById(R.id.btn4);
? ? ? ? btn5 = (Button) findViewById(R.id.btn5);
? ? ? ? btn6 = (Button) findViewById(R.id.btn6);
? ? ? ? btn7 = (Button) findViewById(R.id.btn7);
? ? ? ? btn8 = (Button) findViewById(R.id.btn8);
? ? ? ? btn9 = (Button) findViewById(R.id.btn9);
? ? ? ? btn0 = (Button) findViewById(R.id.btn0);
? ? ? ? jia = (Button) findViewById(R.id.jia);
? ? ? ? jian = (Button) findViewById(R.id.jian);
? ? ? ? cheng = (Button) findViewById(R.id.cheng);
? ? ? ? chu = (Button) findViewById(R.id.chu);
? ? ? ? sum = (Button) findViewById(R.id.sum);
? ? ? ? dian = (Button) findViewById(R.id.dian);
? ? ? ? clear = (Button) findViewById(R.id.clear);
? ? ? ? edit = (EditText) findViewById(R.id.edit);
? ? ? ? // 按鈕的單擊事件
? ? ? ? btn1.setOnClickListener(new Click());
? ? ? ? btn2.setOnClickListener((View.OnClickListener) new Click());
? ? ? ? btn3.setOnClickListener(new Click());
? ? ? ? btn4.setOnClickListener(new Click());
? ? ? ? btn5.setOnClickListener(new Click());
? ? ? ? btn6.setOnClickListener(new Click());
? ? ? ? btn7.setOnClickListener(new Click());
? ? ? ? btn8.setOnClickListener(new Click());
? ? ? ? btn9.setOnClickListener(new Click());
? ? ? ? btn0.setOnClickListener(new Click());
? ? ? ? jia.setOnClickListener(new Click());
? ? ? ? jian.setOnClickListener(new Click());
? ? ? ? cheng.setOnClickListener(new Click());
? ? ? ? chu.setOnClickListener(new Click());
? ? ? ? sum.setOnClickListener(new Click());
? ? ? ? dian.setOnClickListener(new Click());
? ? ? ? clear.setOnClickListener(new Click());
? ? ? ? edit.setOnClickListener(new Click());
? ? }
? ? // 設(shè)置按鈕點(diǎn)擊后的監(jiān)聽(tīng)
? ? class Click implements View.OnClickListener {
? ? ? ? public void onClick(View v) {
? ? ? ? ? ? switch (v.getId()) { ? ? ? ? ? ? ? ?//switch循環(huán)獲取點(diǎn)擊按鈕后的值
? ? ? ? ? ? ? ? case R.id.clear: {
? ? ? ? ? ? ? ? ? ? ss = "";
? ? ? ? ? ? ? ? ? ? edit.setText(ss);
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? case R.id.btn0: {
? ? ? ? ? ? ? ? ? ? ss += "0";
? ? ? ? ? ? ? ? ? ? edit.setText(ss);
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? case R.id.btn1: {
? ? ? ? ? ? ? ? ? ? ss += "1";
? ? ? ? ? ? ? ? ? ? edit.setText(ss);
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? case R.id.btn2: {
? ? ? ? ? ? ? ? ? ? ss += "2";
? ? ? ? ? ? ? ? ? ? edit.setText(ss);
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? case R.id.btn3: {
? ? ? ? ? ? ? ? ? ? ss += "3";
? ? ? ? ? ? ? ? ? ? edit.setText(ss);
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? case R.id.btn4: {
? ? ? ? ? ? ? ? ? ? ss += "4";
? ? ? ? ? ? ? ? ? ? edit.setText(ss);
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? case R.id.btn5: {
? ? ? ? ? ? ? ? ? ? ss += "5";
? ? ? ? ? ? ? ? ? ? edit.setText(ss);
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? case R.id.btn6: {
? ? ? ? ? ? ? ? ? ? ss += "6";
? ? ? ? ? ? ? ? ? ? edit.setText(ss);
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? case R.id.btn7: {
? ? ? ? ? ? ? ? ? ? ss += "7";
? ? ? ? ? ? ? ? ? ? edit.setText(ss);
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? case R.id.btn8: {
? ? ? ? ? ? ? ? ? ? ss += "8";
? ? ? ? ? ? ? ? ? ? edit.setText(ss);
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? case R.id.btn9: {
? ? ? ? ? ? ? ? ? ? ss += "0";
? ? ? ? ? ? ? ? ? ? edit.setText(ss);
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? case R.id.dian: {
? ? ? ? ? ? ? ? ? ? if (ss.length() == 0 || ss.indexOf(" ") == ss.length() - 3 || ss.lastIndexOf(".") > ss.indexOf(" ")) {
? ? ? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? ? ? } else {
? ? ? ? ? ? ? ? ? ? ? ? ss += ".";
? ? ? ? ? ? ? ? ? ? ? ? edit.setText(ss);
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? case R.id.jia: {
? ? ? ? ? ? ? ? ? ? if (ss.length() == 0) {
? ? ? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? if (ss.contains(" ")) {
? ? ? ? ? ? ? ? ? ? ? ? if (ss.indexOf(" ") == ss.length() - 3 || ss.indexOf(" ") == ss.length() - 2 || ss.indexOf(" ") == ss.length() - 1)
? ? ? ? ? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? ? ? ? ? getResult();
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? ss += " + ";
? ? ? ? ? ? ? ? ? ? edit.setText(ss);
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? case R.id.jian: {
? ? ? ? ? ? ? ? ? ? if (ss.length() == 0) {
? ? ? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? if (ss.contains(" ")) {
? ? ? ? ? ? ? ? ? ? ? ? if (ss.indexOf(" ") == ss.length() - 3 || ss.indexOf(" ") == ss.length() - 2 || ss.indexOf(" ") == ss.length() - 1)
? ? ? ? ? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? ? ? ? ? getResult();
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? ss += " - ";
? ? ? ? ? ? ? ? ? ? edit.setText(ss);
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? case R.id.cheng: {
? ? ? ? ? ? ? ? ? ? if (ss.length() == 0) {
? ? ? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? if (ss.contains(" ")) {
? ? ? ? ? ? ? ? ? ? ? ? if (ss.indexOf(" ") == ss.length() - 3 || ss.indexOf(" ") == ss.length() - 2 || ss.indexOf(" ") == ss.length() - 1)
? ? ? ? ? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? ? ? ? ? getResult();
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? ss += " × ";
? ? ? ? ? ? ? ? ? ? edit.setText(ss);
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? case R.id.chu: {
? ? ? ? ? ? ? ? ? ? if (ss.length() == 0) {
? ? ? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? if (ss.contains(" ")) {
? ? ? ? ? ? ? ? ? ? ? ? if (ss.indexOf(" ") == ss.length() - 3 || ss.indexOf(" ") == ss.length() - 2 || ss.indexOf(" ") == ss.length() - 1)
? ? ? ? ? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? ? ? ? ? getResult();
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? ss += " / ";
? ? ? ? ? ? ? ? ? ? edit.setText(ss);
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? case R.id.sum:
? ? ? ? ? ? ? ? ? ? getResult();
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? private void getResult() {
? ? ? ? ? ? double result = 0;
? ? ? ? ? ? if (ss == null || ss.equals("")) return;
? ? ? ? ? ? if (!ss.contains(" ")) return;
? ? ? ? ? ? String s1 = ss.substring(0, ss.indexOf(" "));
? ? ? ? ? ? String op = ss.substring(ss.indexOf(" ") + 1, ss.indexOf(" ") + 2);
? ? ? ? ? ? String s2 = ss.substring(ss.indexOf(" ") + 3);
? ? ? ? ? ? if (!s1.equals("") && !s2.equals("")) {
? ? ? ? ? ? ? ? double d1 = Double.parseDouble(s1);
? ? ? ? ? ? ? ? double d2 = Double.parseDouble(s2);
? ? ? ? ? ? ? ? switch (op) {
? ? ? ? ? ? ? ? ? ? case "+":
? ? ? ? ? ? ? ? ? ? ? ? result = d1 + d2;
? ? ? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? ? ? case "-":
? ? ? ? ? ? ? ? ? ? ? ? result = d1 - d2;
? ? ? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? ? ? case "×":
? ? ? ? ? ? ? ? ? ? ? ? result = d1 * d2;
? ? ? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? ? ? case "÷": {
? ? ? ? ? ? ? ? ? ? ? ? if (d2 == 0) {
? ? ? ? ? ? ? ? ? ? ? ? ? ? edit.setText("不能除以零");
? ? ? ? ? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? ? ? result = d1 / d2 * 1.0;
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? int r = (int) result;
? ? ? ? ? ? ? ? if (r == result) {
? ? ? ? ? ? ? ? ? ? edit.setText("" + r);
? ? ? ? ? ? ? ? ? ? ss = "" + r;
? ? ? ? ? ? ? ? } else {
? ? ? ? ? ? ? ? ? ? edit.setText(result + "");
? ? ? ? ? ? ? ? ? ? ss = "" + result;
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? }
? ? }
}這時(shí)我們可以預(yù)覽應(yīng)用程序運(yùn)行時(shí)的界面:

接下來(lái)就可以用虛擬設(shè)備運(yùn)行一下我們的應(yīng)用:

依次檢查上面三個(gè)地方,沒(méi)問(wèn)題后點(diǎn)擊運(yùn)行:

這是我們做好應(yīng)用的圖標(biāo),打開(kāi)運(yùn)行一下:

接下來(lái)進(jìn)行真機(jī)運(yùn)行,將手機(jī)連接到電腦,Android studio顯示手機(jī)型號(hào)后點(diǎn)擊運(yùn)行:

打開(kāi)安裝到手機(jī)上的應(yīng)用程序:

成功運(yùn)行。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Android 推送原理(Android Push Notification)詳解
- Android中導(dǎo)航組件Navigation的實(shí)現(xiàn)原理
- Android Studio實(shí)現(xiàn)簡(jiǎn)易進(jìn)制轉(zhuǎn)換計(jì)算器
- Android?Studio實(shí)現(xiàn)簡(jiǎn)單計(jì)算器開(kāi)發(fā)
- Android?studio實(shí)現(xiàn)簡(jiǎn)單計(jì)算器的編寫(xiě)
- Android?Studio實(shí)現(xiàn)簡(jiǎn)易計(jì)算器源碼
- android?studio實(shí)現(xiàn)簡(jiǎn)易的計(jì)算器
- 深入了解Android?IO的底層原理
相關(guān)文章
Android自定義View實(shí)現(xiàn)自動(dòng)轉(zhuǎn)圈效果
這篇文章主要為大家詳細(xì)介紹了Android自定義View實(shí)現(xiàn)自動(dòng)轉(zhuǎn)圈效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-05-05
Android OpenGL ES實(shí)現(xiàn)簡(jiǎn)單綠幕摳圖
這篇文章主要為大家介紹了Android OpenGL ES實(shí)現(xiàn)簡(jiǎn)單綠幕摳圖示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06
flutter實(shí)現(xiàn)點(diǎn)擊事件
這篇文章主要為大家詳細(xì)介紹了flutter實(shí)現(xiàn)點(diǎn)擊事件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-08-08
android使用DataBinding來(lái)設(shè)置空狀態(tài)
本篇文章主要介紹了android使用DataBinding來(lái)設(shè)置空狀態(tài),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-03-03
android自定義popupwindow仿微信右上角彈出菜單效果
這篇文章主要為大家詳細(xì)介紹了android自定義popupwindow仿微信右上角彈出菜單效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-11-11
Android自定義控件實(shí)現(xiàn)底部菜單(下)
這篇文章主要為大家詳細(xì)介紹了Android自定義控件實(shí)現(xiàn)底部菜單的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-01-01
Android App開(kāi)發(fā)中使用RecyclerView替代ListView的實(shí)踐
RecyclerView是Android L即5.0版本以來(lái)新加入的一個(gè)組件,主要用來(lái)實(shí)現(xiàn)item的瀑布式排列,因而被人們廣泛認(rèn)為用來(lái)替代ListView,這里我們就來(lái)看一下Android App開(kāi)發(fā)中使用RecyclerView替代ListView的實(shí)踐:2016-06-06
android實(shí)現(xiàn)文字水印效果 支持多行水印
這篇文章主要為大家詳細(xì)介紹了android添加文字水印,并支持多行水印,自定義角度和文字大小,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-10-10
Android手勢(shì)密碼實(shí)現(xiàn)實(shí)例代碼
本篇文章主要介紹了Android手勢(shì)密碼實(shí)現(xiàn)實(shí)例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-04-04

