日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

Android Studio實現(xiàn)簡單計算器功能

瀏覽:128日期:2022-09-25 09:40:06

本文實例為大家分享了Android Studio實現(xiàn)簡單計算器功能的具體代碼,供大家參考,具體內(nèi)容如下

程序步驟:

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

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

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

程序代碼設計:

一、界面布局

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

Android Studio實現(xiàn)簡單計算器功能

布局文件activity_main.xml:

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

<!-- 設置一個網(wǎng)格布局,網(wǎng)格為6行4列--> <GridLayout android:layout_width='fill_parent' android:layout_height='fill_parent' android:columnCount='4' //設置網(wǎng)格列數(shù) android:rowCount='6' //設置網(wǎng)格行數(shù) tools:layout_editor_absoluteX='73dp' tools:layout_editor_absoluteY='294dp'><!--第一行--> <TextView android: //設置id屬性值 android:layout_width='wrap_content' android:layout_height='wrap_content' android:layout_columnSpan='4' //該組件占據(jù)4列的位置 android:textSize='26sp' /><!--第二行--> <Button android: android:layout_width='match_parent' android:layout_height='wrap_content' android:layout_columnSpan='4' android:text='清除' android:textSize='26sp' /> <Button android: android:text='1' android:textSize='26sp' /> <Button android: android:text='2' android:textSize='26sp' /> <Button android: android:text='3' android:textSize='26sp' /> <Button android: android:text='+' android:textSize='26sp' /> <Button android: android:text='4' android:textSize='26sp' /> <Button android: android:text='5' android:textSize='26sp' /> <Button android: android:text='6' android:textSize='26sp' /> <Button android: android:text='-' android:textSize='26sp' /> <Button android: android:text='7' android:textSize='26sp' /> <Button android: android:text='8' android:textSize='26sp' /> <Button android: android:text='9' android:textSize='26sp' /> <Button android: android:text='*' android:textSize='26sp' /> <Button android: android:text='.' android:textSize='26sp' /> <Button android: android:text='0' android:textSize='26sp' /> <Button android: android:text='=' android:textSize='26sp' /> <Button android: android:text='/' android:textSize='26sp' /> </GridLayout>

二、設計控制文件MainActivity:

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

關(guān)聯(lián)用戶界面:

public class MainActivity extends AppCompatActivity { private TextView txt; /*顯示計算過程及結(jié)果*/ 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; /*計算結(jié)果*/ int op=0; /*判斷操作數(shù)*/ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); txt=(TextView) findViewById(R.id.textView); /*與用戶界面程序中組件建立關(guān)聯(lián)*/ 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()); }

實現(xiàn)監(jiān)聽時間處理:

數(shù)字,小數(shù)點按鍵:

class mClick implements View.OnClickListener { public void onClick(View v) { switch(v.getId()){ /*用swtich()方法,判斷點擊按鈕的id*/ case R.id.butCancel: /*清除,直接將輸入的所有符號清空*/ txt.setText(null); break; /*數(shù)字,小數(shù)點按鍵*/ case R.id.but_1: String str1=txt.getText().toString(); /*獲取輸入內(nèi)容并轉(zhuǎn)為string類型/ str1+='1'; /*拼接字符串*/ txt.setText(str1); /*顯示輸入內(nèi)容*/ 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();/*按運算符,獲取要計算的數(shù)字,并放入num1等待計算*/ if(stradd.equals(null)) /*判斷按運算符前是否輸入要計算的數(shù)字,若為空,則返回*/ { return; } num1=Double.valueOf(stradd);/*將獲取的字符串轉(zhuǎn)化為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;

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

case R.id.but_equ: String strequ=txt.getText().toString(); num2=Double.valueOf(strequ); txt.setText(null); switch (op){ /*用switch函數(shù)來判斷進行何種操作,實施運算并得出結(jié)果*/ case 1: result=num1+num2; txt.setText(String.valueOf(num1)+'+'+String.valueOf(num2)+'='+String.valueOf(result));/*獲取結(jié)果并將其轉(zhuǎn)為字符串輸出*/ 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('除數(shù)不能為0!'); /*規(guī)定除數(shù)不能為0,否則報錯*/ }else{ result=num1/num2; txt.setText(String.valueOf(num1)+'/'+String.valueOf(num2)+'='+String.valueOf(result));} break; default: result=0; break; }

三、運行結(jié)果

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

Android Studio實現(xiàn)簡單計算器功能

更多計算器功能實現(xiàn),請點擊專題: 計算器功能匯總 進行學習

關(guān)于Android計算器功能的實現(xiàn),查看專題:Android計算器 進行學習。

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標簽: Android
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
成人一二三区| 欧美一级网站| 日韩高清二区| 日本中文字幕不卡| 亚洲精品无播放器在线播放| 亚洲天堂黄色| 欧美一级精品| 伊人影院久久| 中文日韩欧美| 日韩一区二区三区免费视频| 亚洲精品婷婷| 91久久精品无嫩草影院| 91国内精品| 麻豆精品少妇| 国产精品极品国产中出| 国产视频网站一区二区三区| 国产一区 二区| 四虎国产精品免费观看| 日韩欧美一区二区三区在线观看| 欧美不卡高清一区二区三区| 久久久久91| 中文字幕成人| 欧美1区2区3| 中文另类视频| 婷婷综合电影| 在线手机中文字幕| 免费精品视频在线| 国产一区二区精品久| 免费毛片在线不卡| 丝袜脚交一区二区| 国产精品nxnn| 在线亚洲观看| 久久一区欧美| 久久国产精品99国产| 免费观看久久久4p| 高清在线一区| 日本不卡在线视频| 日本在线高清| 欧美日韩一区自拍| 国产亚洲亚洲| 国内精品麻豆美女在线播放视频| 日韩视频二区| 成人国产精品一区二区免费麻豆| 亚洲在线国产日韩欧美| 日韩精品1区2区3区| 99精品在线观看| 日韩精品一页| 9色精品在线| 国产资源在线观看入口av| 日韩在线网址| 视频在线观看一区| 国产一区久久| 国产精品成久久久久| 日韩专区在线视频| 国产精品嫩草99av在线| 亚洲黄色影院| 国产超碰精品| 日韩免费视频| 精品国产乱码久久久| 国产日产一区| 亚洲一区国产| 黄色av日韩| 91精品91| 久久先锋影音| 午夜一级久久| 亚洲一区区二区| 尹人成人综合网| 日韩亚洲国产欧美| 五月天综合网站| 在线精品视频在线观看高清| 日韩国产一区| 99久久九九| 国产一区导航| 视频精品一区| 日韩一区二区三区四区五区| 蜜臀av一区二区三区| 日韩精品一区二区三区中文| 四虎精品一区二区免费| 久久国产免费看| 精品国产亚洲一区二区三区在线 | 午夜精品成人av| 色网在线免费观看| 成人久久一区| 亚洲精品中文字幕乱码| 99视频在线精品国自产拍免费观看| 亚洲成人不卡| 日本中文字幕不卡| 狂野欧美性猛交xxxx| 日韩国产一区二区| 国产视频欧美| 石原莉奈在线亚洲二区| 国产精品美女久久久久久不卡| 在线精品亚洲| 最新亚洲国产| 国产精品毛片aⅴ一区二区三区| 国产成人精品亚洲线观看| 国户精品久久久久久久久久久不卡| 视频一区二区中文字幕| 国产精品www994| 1024精品久久久久久久久| 日韩中文欧美在线| 老司机免费视频一区二区| 香蕉国产精品| 成人国产精品一区二区免费麻豆| 石原莉奈在线亚洲三区| 激情国产在线| 国产精品一区二区三区www| 欧美日韩四区| 精精国产xxxx视频在线播放| 欧美日韩va| 中文字幕一区二区精品区| 麻豆精品蜜桃| 精品日韩一区| 欧美在线首页| 亚洲久久在线| 99精品电影| 午夜精品成人av| 四虎成人av| 国内精品亚洲| 精品一区二区三区在线观看视频| 亚洲精品一区二区在线播放∴| 久久一区二区三区喷水| 国产成人在线中文字幕| 国产精一区二区| 欧美日韩中文| 国产日韩视频| 国产欧美69| 欧美91在线| 国产精久久久| 精品欧美视频| 欧美色综合网| 国产精品极品国产中出| 国产精品亚洲片在线播放| 日韩精品视频中文字幕| 亚洲精品一区二区在线播放∴| 蜜桃久久av| 亚洲精品福利| 国产精品国码视频| 狠狠久久伊人中文字幕| 国产日韩电影| 99riav国产精品| 亚洲乱码视频| 日韩av网站在线观看| 国产亚洲人成a在线v网站| 麻豆久久久久久| 激情综合五月| 婷婷久久一区| 亚洲1区在线| 久久只有精品| 亚洲精品中文字幕乱码| 亚洲精选久久| 天堂а√在线最新版中文在线| 国产综合亚洲精品一区二| 婷婷综合福利| 神马久久午夜| 五月国产精品| 日韩大片在线| 欧美视频一区| 久久伦理在线| 91p九色成人| 三级在线看中文字幕完整版| 日韩精品一级中文字幕精品视频免费观看 | 欧美日韩在线观看视频小说| 欧美丝袜一区| 日本午夜精品视频在线观看| 久久97久久97精品免视看秋霞| 欧美 日韩 国产一区二区在线视频| 亚洲日本免费电影| av亚洲一区二区三区| 日本一区中文字幕| 国产精品av久久久久久麻豆网| 日本a级不卡| 午夜欧美精品| 色综合五月天| 免费一级欧美片在线观看网站 | 水蜜桃精品av一区二区| 天堂久久一区| 日韩不卡免费高清视频| 国产香蕉精品| 亚洲欧洲专区| 亚洲中字黄色| 免费精品国产的网站免费观看| 国产一区二区三区亚洲综合| 亚洲国产一区二区三区在线播放| 久久久久伊人| 麻豆久久久久久| 国产精品一区二区三区av麻| 亚洲区国产区| 亚洲乱码久久| 亚洲综合色婷婷在线观看| 亚洲免费影视| 一二三区精品| 亚洲欧美日韩国产一区| 1024精品久久久久久久久| 欧美美女一区| 精品中文字幕一区二区三区av| 成人日韩精品| 精品日韩毛片| 免费精品视频在线| 日韩精品久久久久久|