用Android?studio實現(xiàn)簡易計算器功能
用Android studio做一個簡易計算器,供大家參考,具體內(nèi)容如下
長話短說,先建立一個Android項目;
創(chuàng)建完成后打開activity_main.xml,構(gòu)建我們的應用界面,輸入以下代碼:
<?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" ? ? > ? ? <!--文本標簽--> ? ? <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;// +號 ? ? EditText edit; // 顯示文本 ? ? private String ss = ""; ? ? @Override ? ? protected void onCreate(Bundle savedInstanceState) { ? ? ? ? super.onCreate(savedInstanceState); ? ? ? ? setContentView(R.layout.activity_main); ? ? ? ? // 獲取頁面上的控件 ? ? ? ? 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è)置按鈕點擊后的監(jiān)聽 ? ? class Click implements View.OnClickListener { ? ? ? ? public void onClick(View v) { ? ? ? ? ? ? switch (v.getId()) { ? ? ? ? ? ? ? ?//switch循環(huá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è)備運行一下我們的應用:
依次檢查上面三個地方,沒問題后點擊運行:
這是我們做好應用的圖標,打開運行一下:
接下來進行真機運行,將手機連接到電腦,Android studio顯示手機型號后點擊運行:
打開安裝到手機上的應用程序:
成功運行。
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
android利用消息機制獲取網(wǎng)絡(luò)圖片
這篇文章主要為大家詳細介紹了android利用消息機制獲取網(wǎng)絡(luò)圖片的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-03-03Android中Volley框架進行請求網(wǎng)絡(luò)數(shù)據(jù)的使用
這篇文章主要介紹了Android中Volley框架進行請求網(wǎng)絡(luò)數(shù)據(jù)的使用,本文給大家介紹的非常詳細具有參考借鑒價值,需要的朋友可以參考下2016-10-10Android Native 內(nèi)存泄漏系統(tǒng)化解決方案
這篇文章主要介紹了Android Native 內(nèi)存泄漏系統(tǒng)化解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-07-07Cocos2d-x 3.0中集成社交分享ShareSDK的詳細步驟和常見問題解決
這篇文章主要介紹了Cocos2d-x 3.0中集成社交分享ShareSDK的詳細步驟和常見問題的解決方法以及需要注意的問題,需要的朋友可以參考下2014-04-04Android?Jetpack組件中LifeCycle作用詳細介紹
Jetpack是谷歌在Google?I/O?2017大會上發(fā)布一套幫助開發(fā)者解決Android架構(gòu)設(shè)計的方案,而Lifecycle是Jetpack?architecture下的一部分,一起來看一下Lifecycle的使用及原理分析2022-09-09