91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android Studio如何實現簡單計算器功能

發布時間:2021-04-17 11:59:46 來源:億速云 閱讀:258 作者:小新 欄目:移動開發

小編給大家分享一下Android Studio如何實現簡單計算器功能,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

具體內容如下

程序步驟:

(1)在布局文件定義一些計算器界面的文本框,按鈕等組件。

(2)在Activity中獲取組件實例。

(3)通過swtich函數,判斷輸入的內容,并進行相應操作,通過getText()獲取文本內容,setText()顯示。

程序代碼設計:

一、界面布局

參考書本例2-9,應用網格布局設計計算器界面,在設計區域設置一個6行4列的網格布局,第一行為顯示數據的文本標簽,第二行為清除數據的按鈕,即清空所有輸入的數據,3-6行劃分為均等的16個按鈕,分別代表數字0-9,小數點,和運算符加減乘除以及等于號。界面效果圖如下

Android Studio如何實現簡單計算器功能

布局文件activity_main.xml:

定義一些計算器界面的文本框,按鈕等組件,因為要與控制文件MainActivity.java建立關聯,所以每一個組件都需要設置id屬性值。要注意的是,打開布局文件時,我一開始參照書本,把原來自動給出的抬頭改了,導致界面只能出現文本標簽和清除按鈕,經過修改,我發現不能修改原來的抬頭,直接在下面再設置網格布局。

<!-- 設置一個網格布局,網格為6行4列-->
 <GridLayout
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 android:columnCount="4" //設置網格列數
 android:rowCount="6" //設置網格行數
 tools:layout_editor_absoluteX="73dp"
 tools:layout_editor_absoluteY="294dp">
<!--第一行-->
 <TextView
 android:id="@+id/textView" //設置id屬性值
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:layout_columnSpan="4" //該組件占據4列的位置
 android:textSize="26sp" />
<!--第二行-->
 <Button
 android:id="@+id/butCancel"
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:layout_columnSpan="4"
 android:text="清除"
 android:textSize="26sp" />
 <Button
 android:id="@+id/but_1"
 android:text="1"
 android:textSize="26sp" />
 
 <Button
 android:id="@+id/but_2"
 android:text="2"
 android:textSize="26sp" />
 
 <Button
 android:id="@+id/but_3"
 android:text="3"
 android:textSize="26sp" />
 
 <Button
 android:id="@+id/but_add"
 android:text="+"
 android:textSize="26sp" />
 
 <Button
 android:id="@+id/but_4"
 android:text="4"
 android:textSize="26sp" />
 
 <Button
 android:id="@+id/but_5"
 android:text="5"
 android:textSize="26sp" />
 
 <Button
 android:id="@+id/but_6"
 android:text="6"
 android:textSize="26sp" />
 
 <Button
 android:id="@+id/but_sub"
 android:text="-"
 android:textSize="26sp" />
 
 <Button
 android:id="@+id/but_7"
 android:text="7"
 android:textSize="26sp" />
 
 <Button
 android:id="@+id/but_8"
 android:text="8"
 android:textSize="26sp" />
 
 <Button
 android:id="@+id/but_9"
 android:text="9"
 android:textSize="26sp" />
 
 <Button
 android:id="@+id/but_mut"
 android:text="*"
 android:textSize="26sp" />
 
 <Button
 android:id="@+id/but_dopt"
 android:text="."
 android:textSize="26sp" />
 
 <Button
 android:id="@+id/but_0"
 android:text="0"
 android:textSize="26sp" />
 
 <Button
 android:id="@+id/but_equ"
 android:text="="
 android:textSize="26sp" />
 
 <Button
 android:id="@+id/but_div"
 android:text="/"
 android:textSize="26sp" />
 
</GridLayout>

二、設計控制文件MainActivity:

建立與程序中組件與用戶界面程序組件的關聯,并編寫設計按鈕的監聽事件處理代碼。點擊數字和小數點按鈕在文本標簽輸入并顯示要計算的數字,點擊運算符按鈕獲取前面的數字,放進num1,按=運算符時,獲取前面的數字,再通過op判斷操作數,進行加減乘除運算,輸出結果。

關聯用戶界面:

public class MainActivity extends AppCompatActivity {
 
 private TextView txt; /*顯示計算過程及結果*/
 private Button butp,but1,but2,but3,but4,but5,but6,but7,but8,but9,but0,buta,buts,butm,butdiv,butdopt,buteq;
 double num1=0,num2=0;
 double result=0; /*計算結果*/
 int op=0; /*判斷操作數*/
 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);
 txt=(TextView) findViewById(R.id.textView); /*與用戶界面程序中組件建立關聯*/
 butp=(Button)findViewById(R.id.butCancel); /*清除*/
 but1=(Button)findViewById(R.id.but_1); 
 but2=(Button)findViewById(R.id.but_2);
 but3=(Button)findViewById(R.id.but_3);
 but4=(Button)findViewById(R.id.but_4);
 but5=(Button)findViewById(R.id.but_5);
 but6=(Button)findViewById(R.id.but_6);
 but7=(Button)findViewById(R.id.but_7);
 but8=(Button)findViewById(R.id.but_8);
 but9=(Button)findViewById(R.id.but_9);
 but0=(Button)findViewById(R.id.but_0);
 buta=(Button)findViewById(R.id.but_add); /*加*/
 buts=(Button)findViewById(R.id.but_sub); /*減*/
 butm=(Button)findViewById(R.id.but_mut); /*乘*/
 butdiv=(Button)findViewById(R.id.but_div); /*除*/
 butdopt=(Button)findViewById(R.id.but_dopt); /*點*/
 buteq=(Button)findViewById(R.id.but_equ); /*等于*/
 
 
 butp.setOnClickListener(new mClick());
 but1.setOnClickListener(new mClick());
 but2.setOnClickListener(new mClick());
 but3.setOnClickListener(new mClick());
 but4.setOnClickListener(new mClick());
 but5.setOnClickListener(new mClick());
 but6.setOnClickListener(new mClick());
 but7.setOnClickListener(new mClick());
 but8.setOnClickListener(new mClick());
 but9.setOnClickListener(new mClick());
 but0.setOnClickListener(new mClick());
 buta.setOnClickListener(new mClick());
 buts.setOnClickListener(new mClick());
 butm.setOnClickListener(new mClick());
 butdiv.setOnClickListener(new mClick());
 butdopt.setOnClickListener(new mClick());
 buteq.setOnClickListener(new mClick());
 }

實現監聽時間處理:

數字,小數點按鍵:

class mClick implements View.OnClickListener
 {
 public void onClick(View v) {
 
 switch(v.getId()){ /*用swtich()方法,判斷點擊按鈕的id*/
 case R.id.butCancel: /*清除,直接將輸入的所有符號清空*/
 txt.setText(null);
 break;
 /*數字,小數點按鍵*/
 case R.id.but_1:
 String str1=txt.getText().toString(); /*獲取輸入內容并轉為string類型/
 str1+="1"; /*拼接字符串*/
 txt.setText(str1); /*顯示輸入內容*/
 break;
 case R.id.but_2:
 String str2=txt.getText().toString();
 str2+="2";
 txt.setText(str2);
 break;
 case R.id.but_3:
 String str3=txt.getText().toString();
 str3+="3";
 txt.setText(str3);
 break;
 case R.id.but_4:
 String str4=txt.getText().toString();
 str4+="4";
 txt.setText(str4);
 break;
 case R.id.but_5:
 String str5=txt.getText().toString();
 str5+="5";
 txt.setText(str5);
 break;
 case R.id.but_6:
 String str6=txt.getText().toString();
 str6+="6";
 txt.setText(str6);
 break;
 case R.id.but_7:
 String str7=txt.getText().toString();
 str7+="7";
 txt.setText(str7);
 break;
 case R.id.but_8:
 String str8=txt.getText().toString();
 str8+="8";
 txt.setText(str8);
 break;
 case R.id.but_9:
 String str9=txt.getText().toString();
 str9+="9";
 txt.setText(str9);
 break;
 case R.id.but_0:
 String strr=txt.getText().toString();
 strr+="0";
 txt.setText(strr);
 break;
 case R.id.but_dopt:
 String strd=txt.getText().toString();
 strd+=".";
 txt.setText(strd);
 break;

運算符按鍵:

/*運算符按鍵*/
 case R.id.but_add:
 String stradd=txt.getText().toString();/*按運算符,獲取要計算的數字,并放入num1等待計算*/
 if(stradd.equals(null)) /*判斷按運算符前是否輸入要計算的數字,若為空,則返回*/
 {
 return;
 }
 num1=Double.valueOf(stradd);/*將獲取的字符串轉化為double類型以便計算*/
 txt.setText(null);
 op=1;
 break;
 case R.id.but_sub:
 String strsub=txt.getText().toString();
 if(strsub.equals(null))
 {
 return;
 }
 num1=Double.valueOf(strsub);
 txt.setText(null);
 op=2;
 break;
 case R.id.but_mut:
 String strmut=txt.getText().toString();
 if(strmut.equals(null))
 {
 return;
 }
 num1=Double.valueOf(strmut);
 txt.setText(null);
 op=3;
 break;
 case R.id.but_div:
 String strdiv=txt.getText().toString();
 if(strdiv.equals(null))
 {
 return;
 }
 num1=Double.valueOf(strdiv);
 txt.setText(null);
 op=4;
 break;

邏輯算法實現:雖然能進行簡單的計算,但是因為把輸入的數字放入num1和num2,進行計算,點擊運算符只是獲取符號前的數字,并不是顯示運算符,所以我只是手動添加等式顯示,即結果顯示時只能顯示兩個數之間的加減乘除運算。

case R.id.but_equ:
 String strequ=txt.getText().toString();
 num2=Double.valueOf(strequ);
 txt.setText(null);
 switch (op){ /*用switch函數來判斷進行何種操作,實施運算并得出結果*/
 case 1:
 result=num1+num2;
 txt.setText(String.valueOf(num1)+"+"+String.valueOf(num2)+"="+String.valueOf(result));/*獲取結果并將其轉為字符串輸出*/
 break;
 case 2:
 result=num1-num2;
 txt.setText(String.valueOf(num1)+"-"+String.valueOf(num2)+"="+String.valueOf(result));
 break;
 case 3:
 result=num1*num2;
 txt.setText(String.valueOf(num1)+"*"+String.valueOf(num2)+"="+String.valueOf(result));
 break;
 case 4:
 if (num2==0){
 txt. setText("除數不能為0!"); /*規定除數不能為0,否則報錯*/
 }else{
 result=num1/num2;
 txt.setText(String.valueOf(num1)+"/"+String.valueOf(num2)+"="+String.valueOf(result));}
 break;
 default:
 result=0;
 break;
 }

三、運行結果

在編寫這個計算器代碼的過程中,收獲了很多,對Android Studio的布局有了更多的認識,對它的操作也熟練了很多,也學會了怎樣可以更快速,便捷地進行代碼編寫,在實踐中學習,即使這次的代碼還有很多要改進,修改的地方。

Android Studio如何實現簡單計算器功能

以上是“Android Studio如何實現簡單計算器功能”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

天水市| 西乌珠穆沁旗| 瑞金市| 共和县| 调兵山市| 绥芬河市| 玛纳斯县| 新津县| 上栗县| 兴海县| 古蔺县| 连云港市| 庄浪县| 商都县| 渭南市| 孝昌县| 岳普湖县| 缙云县| 陆良县| 宜兰市| 建宁县| 黄冈市| 华宁县| 南木林县| 白沙| 鄂尔多斯市| 安宁市| 阿城市| 浮梁县| 五台县| 同仁县| 汉沽区| 昌宁县| 宁都县| 新闻| 余江县| 南皮县| 太白县| 嵊州市| 盐源县| 晋州市|