您好,登錄后才能下訂單哦!
這篇文章主要介紹“Android studio開發(fā)怎么實現(xiàn)計算器功能”的相關(guān)知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“Android studio開發(fā)怎么實現(xiàn)計算器功能”文章能幫助大家解決問題。
前言
android 開發(fā)小實驗
android 移動開發(fā)實現(xiàn) 簡易計算器功能
小白也能輕松上手,復(fù)制粘貼就可使用
Android Studio 或者 intellij idea
首先體驗一下結(jié)果
前端頁面布局
activity_calculator.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout 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" android:gravity="center" android:orientation="vertical" android:background="@drawable/bg2" > <TextView android:layout_width="410dp" android:layout_height="60dp" android:text="計算器" android:textSize="35dp" android:gravity="center" android:background="#A6EFEF" > </TextView> <TextView android:id="@+id/text_show" android:layout_width="410dp" android:layout_height="80dp" android:background="#EAB9B9" android:textSize="30dp" /> <EditText android:id="@+id/ediText" android:layout_width="410dp" android:layout_height="70dp" android:layout_marginBottom="10dp" android:background="#EAB9B9" android:editable="false" android:gravity="right|center_vertical" android:paddingRight="20dp" android:hint="請輸入數(shù)字" android:textSize="30sp" /> <GridLayout android:layout_width="410dp" android:layout_height="400dp" android:columnCount="5" android:rowCount="6"> <Button android:id="@+id/button6" android:layout_width="80dp" android:layout_height="wrap_content" android:text="←" android:background="#87F4F8" android:layout_margin="2dp" android:textSize="20dp" /> <Button android:id="@+id/button7" android:layout_width="80dp" android:layout_height="wrap_content" android:text="CE" android:background="#87F4F8" android:layout_margin="2dp" android:textSize="20dp" /> <Button android:id="@+id/button8" android:layout_width="80dp" android:layout_height="wrap_content" android:text="C" android:background="#87F4F8" android:layout_margin="2dp" android:textSize="20dp" /> <Button android:id="@+id/button9" android:layout_width="80dp" android:layout_height="wrap_content" android:text="±" android:background="#87F4F8" android:layout_margin="2dp" android:textSize="20dp" /> <Button android:id="@+id/button10" android:layout_width="80dp" android:layout_height="wrap_content" android:text="√" android:background="#87F4F8" android:layout_margin="2dp" android:textSize="20dp" /> <Button android:id="@+id/nine" android:layout_width="80dp" android:layout_height="wrap_content" android:text="9" android:background="#87F4F8" android:layout_margin="2dp" android:textSize="20dp" /> <Button android:id="@+id/eight" android:layout_width="80dp" android:layout_height="wrap_content" android:text="8" android:background="#87F4F8" android:layout_margin="2dp" android:textSize="20dp" /> <Button android:id="@+id/seven" android:layout_width="80dp" android:layout_height="wrap_content" android:text="7" android:background="#87F4F8" android:layout_margin="2dp" android:textSize="20dp" /> <Button android:id="@+id/divider" android:layout_width="80dp" android:layout_height="wrap_content" android:text="/" android:background="#87F4F8" android:layout_margin="2dp" android:textSize="20dp" /> <Button android:id="@+id/button15" android:layout_width="80dp" android:layout_height="wrap_content" android:text="%" android:background="#87F4F8" android:layout_margin="2dp" android:textSize="20dp" /> <Button android:id="@+id/four" android:layout_width="80dp" android:layout_height="wrap_content" android:text="4" android:background="#87F4F8" android:layout_margin="2dp" android:textSize="20dp" /> <Button android:id="@+id/five" android:layout_width="80dp" android:layout_height="wrap_content" android:text="5" android:background="#87F4F8" android:layout_margin="2dp" android:textSize="20dp" /> <Button android:id="@+id/six" android:layout_width="80dp" android:layout_height="wrap_content" android:text="6" android:background="#87F4F8" android:layout_margin="2dp" android:textSize="20dp" /> <Button android:id="@+id/multiply" android:layout_width="80dp" android:layout_height="wrap_content" android:text="*" android:background="#87F4F8" android:layout_margin="2dp" android:textSize="20dp" /> <Button android:id="@+id/button20" android:layout_width="80dp" android:layout_height="wrap_content" android:text="1/X" android:background="#87F4F8" android:layout_margin="2dp" android:textSize="20dp" /> <Button android:id="@+id/one" android:layout_width="80dp" android:layout_height="wrap_content" android:text="1" android:background="#87F4F8" android:layout_margin="2dp" android:textSize="20dp" /> <Button android:id="@+id/two" android:layout_width="80dp" android:layout_height="wrap_content" android:text="2" android:background="#87F4F8" android:layout_margin="2dp" android:textSize="20dp" /> <Button android:id="@+id/three" android:layout_width="80dp" android:layout_height="wrap_content" android:text="3" android:background="#87F4F8" android:layout_margin="2dp" android:textSize="20dp" /> <Button android:id="@+id/minus" android:layout_width="80dp" android:layout_height="wrap_content" android:text="-" android:background="#87F4F8" android:layout_margin="2dp" android:textSize="20dp" /> <Button android:id="@+id/equal" android:layout_width="80dp" android:layout_height="100dp" android:layout_rowSpan="2" android:text="=" android:background="#87F4F8" android:layout_margin="2dp" android:textSize="20dp" /> <Button android:id="@+id/zero" android:layout_width="160dp" android:layout_height="wrap_content" android:layout_columnSpan="2" android:text="0" android:background="#87F4F8" android:layout_margin="2dp" android:textSize="20dp" /> <Button android:id="@+id/point" android:layout_width="80dp" android:layout_height="wrap_content" android:text="." android:background="#87F4F8" android:layout_margin="2dp" android:textSize="20dp" /> <Button android:id="@+id/add" android:layout_width="80dp" android:layout_height="wrap_content" android:text="+" android:background="#87F4F8" android:layout_margin="2dp" android:textSize="20dp" /> </GridLayout> </LinearLayout>
后端源碼
CalculatorActivity.java
package com.example.myappch6; import android.widget.TextView; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.app.Activity; import android.view.View; import android.widget.Button; import android.widget.EditText; public class CalculatorActivity extends Activity implements View.OnClickListener{ //數(shù)字0-9 Button number_0; Button number_1; Button number_2; Button number_3; Button number_4; Button number_5; Button number_6; Button number_7; Button number_8; Button number_9; //運算符 Button add; //+ Button minus; //- Button mul; //* Button divide; //除 Button equal; //= Button point; //小數(shù)點 //清除 Button det; boolean clean; //清空標(biāo)識 EditText editText; //結(jié)果顯示集 TextView text_show; //顯示計算器文本控件 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_calculator); //數(shù)字0——9實例化 number_0=findViewById(R.id.zero); number_1=findViewById(R.id.one); number_2=findViewById(R.id.two); number_3=findViewById(R.id.three); number_4=findViewById(R.id.four); number_5=findViewById(R.id.five); number_6=findViewById(R.id.six); number_7=findViewById(R.id.seven); number_8=findViewById(R.id.eight); number_9=findViewById(R.id.nine); //運算符實例化 add=findViewById(R.id.add); //加 minus=findViewById(R.id.minus); //減 mul=findViewById(R.id.multiply); //乘 divide=findViewById(R.id.divider); //除 equal=findViewById(R.id.equal); //等 point=findViewById(R.id.point); //小數(shù)點 det=findViewById(R.id.button8); //清除 //結(jié)果顯示集 text_show = findViewById(R.id.text_show); editText=findViewById(R.id.ediText); //添加事件點擊事件 // 數(shù)字點擊事件 number_0.setOnClickListener( this); number_1.setOnClickListener(this); number_2.setOnClickListener( this); number_3.setOnClickListener( this); number_4.setOnClickListener(this); number_5.setOnClickListener( this); number_6.setOnClickListener( this); number_7.setOnClickListener(this); number_8.setOnClickListener( this); number_9.setOnClickListener( this); // 符號點擊事件 add.setOnClickListener( this); minus.setOnClickListener( this); mul.setOnClickListener( this); divide.setOnClickListener( this); point.setOnClickListener( this); equal.setOnClickListener( this); det.setOnClickListener( this); } //讀取每個按鈕內(nèi)容 public void onClick(View view){ //獲取文本內(nèi)容 String input=editText.getText().toString(); switch (view.getId()){ case R.id.zero: // 0 case R.id.one: // 1 case R.id.two: // 2 case R.id.three: // 3 case R.id.four: // 4 case R.id.five: // 5 case R.id.six: // 6 case R.id.seven: // 7 case R.id.eight: // 8 case R.id.nine: // 9 case R.id.point: //小數(shù)點 if(clean){ clean=false; editText.setText(""); //賦值為空 } editText.setText(input+((Button)view).getText()+""); //結(jié)果集就是本身 break; case R.id.add: case R.id.minus: // 減 case R.id.multiply: // 乘 case R.id.divider: // 除 if(clean){ clean=false; input=""; editText.setText(""); } editText.setText(input+" "+((Button)view).getText()+" "); break; case R.id.button8: //清除 if(clean){ clean=false; input=""; editText.setText(""); }else if(input!=null || !input.equals("")){ //如果獲取內(nèi)容為空 editText.setText(input.substring(0,input.length() - 1 ));//結(jié)果集為空 break; } break; case R.id.equal: //運算結(jié)果= getResult(); //調(diào)用處理結(jié)果方法 break; } } //運算結(jié)果方法 private void getResult(){ String exp=editText.getText().toString(); //獲取文本框內(nèi)容 if(exp==null||exp.equals("")){ return; } if(!exp.contains("")){ return; } if(clean){ clean=false; return; } clean=true; double result=0; //進行截取 // 運算符前的數(shù)字 String s1=exp.substring(0,exp.indexOf(" ")); //運算符 String op=exp.substring(exp.indexOf(" ")+1,exp.indexOf(" ")+2); //運算符后的數(shù)字 String s2=exp.substring(exp.indexOf(" ")+3); if(!s1.equals("")&&!s2.equals("")){ //如果包含小數(shù)點的運算 double d1=Double.parseDouble(s1);//則數(shù)字都是double類型 double d2=Double.parseDouble(s2); if(op.equals("+")){ // 如果是+ result=d1+d2; text_show.setText(d1+ "+" +d2+"="); }else if(op.equals("-")){ //如果是- result=d1-d2; text_show.setText(d1+ "-" +d2+"="); }else if(op.equals("*")){ //如果是* result=d1*d2; text_show.setText(d1+ "*" +d2+"="); }else if(op.equals("/")){ if(d2==0){ //如果被除數(shù)是0 result=0;//則結(jié)果為0 } else { //否則執(zhí)行正常運算 result=d1/d2; text_show.setText(d1+ "/" +d2+"="); } } if(!s1.contains(".") &&!s2.contains(".")&&!op.equals("/")){ //如果是整數(shù)類型 int r=(int)result;//都是整形 editText.setText(r+""); }else { editText.setText(result+""); } }else if(!s1.equals("")&& s2.equals("")){ //如果只輸入運算符前的數(shù)字 editText.setText(exp);//直接返回當(dāng)前輸入內(nèi)容 }else if (s1.equals("")&& !s2.equals("")){ //如果是只輸入運算符后面的數(shù) double d2 =Double.parseDouble(s2); //運算符當(dāng)前沒有輸入數(shù)字 if(op.equals("+")){ result= 0 + d2; text_show.setText(d2+"="); }else if(op.equals("-")){ result= 0 - d2; text_show.setText(d2+"="); }else if (op.equals("*")){ result= 0; }else if(op.equals("/")){ result= 0; } if(!s1.contains(".")&&!s2.contains(".")){ int r=(int) result; editText.setText(r+""); }else { editText.setText(result+""); } }else { editText.setText(""); } } }
關(guān)于“Android studio開發(fā)怎么實現(xiàn)計算器功能”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識,可以關(guān)注億速云行業(yè)資訊頻道,小編每天都會為大家更新不同的知識點。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。