版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Android實(shí)訓(xùn)案例(一)——計(jì)算器的運(yùn)算邏輯應(yīng)一個(gè)朋友的邀請(qǐng),叫我寫一個(gè)計(jì)算器,開(kāi)始覺(jué)得,就一個(gè)計(jì)算器嘛,很簡(jiǎn)單的,但是寫著寫著發(fā)現(xiàn)自己寫出來(lái)的邏輯真不嚴(yán)謹(jǐn),于是搜索了
一下,看到mk(沒(méi)有打廣告….)上有視頻,于是看了下他的邏輯,以前還真是小瞧計(jì)算器了,計(jì)算器要是高級(jí)一點(diǎn)的處理起來(lái)更加繁瑣,這里就
做了一個(gè)簡(jiǎn)單一點(diǎn)的,這次用的是AndroidStudio開(kāi)發(fā)的,畢竟自己也是一直很推崇AS,但是在之前的博客里都只是為了方便,一直在用
Eclipse一直強(qiáng)烈推薦大家還是轉(zhuǎn)移到AS上去,雖然我工作一直在用Eclipse,不過(guò)AS的腳步一直沒(méi)有落下,好處多多!運(yùn)行截圖:這個(gè)仍然還是有許多不完善的地方,如果看官覺(jué)得可以改的話,歡迎參與activity_main.xml<LinearLayoutxmlns:android="/apk/res/android"xmlns:tools="/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_gravity="center"android:background="@drawable/main_bg"android:orientation="vertical"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"tools:context=".MainActivity"><RelativeLayoutandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:gravity="center"><EditTextandroid:id="@+id/et_showview"android:layout_width="350dip"android:layout_height="100dip"android:background="@drawable/whitebg"android:editable="false"android:gravity="bottom|right"android:textSize="20sp"/></RelativeLayout><LinearLayoutandroid:layout_width="fill_parent"android:layout_height="fill_parent"android:layout_marginTop="20dip"android:gravity="center_horizontal"android:orientation="vertical"><LinearLayoutandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:gravity="center_horizontal"android:orientation="horizontal"><Buttonandroid:id="@+id/btn_clear"android:layout_width="80dp"android:layout_height="80dp"android:background="@drawable/white_btn_selector"android:gravity="bottom|right"android:paddingBottom="10dp"android:paddingRight="10dp"android:text="C"android:textSize="20sp"/><Buttonandroid:id="@+id/btn_del"android:layout_width="80dp"android:layout_height="80dp"android:layout_marginLeft="10dip"android:background="@drawable/white_btn_selector"android:gravity="bottom|right"android:paddingBottom="10dp"android:paddingRight="10dp"android:text="DEL"android:textSize="20sp"/><Buttonandroid:id="@+id/btn_divide"android:layout_width="80dp"android:layout_height="80dp"android:layout_marginLeft="10dip"android:background="@drawable/white_btn_selector"android:gravity="bottom|right"android:paddingBottom="10dp"android:paddingRight="10dp"android:text="÷"android:textSize="20sp"/><Buttonandroid:id="@+id/btn_multiply"android:layout_width="80dp"android:layout_height="80dp"android:layout_marginLeft="10dip"android:background="@drawable/white_btn_selector"android:gravity="bottom|right"android:paddingBottom="10dp"android:paddingRight="10dp"android:text="×"android:textSize="20sp"/></LinearLayout><LinearLayoutandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_marginTop="10dip"android:gravity="center_horizontal"android:orientation="horizontal"><Buttonandroid:id="@+id/btn_7"android:layout_width="80dp"android:layout_height="80dp"android:background="@drawable/white_btn_selector"android:gravity="bottom|right"android:paddingBottom="10dp"android:paddingRight="10dp"android:text="7"android:textSize="20sp"/><Buttonandroid:id="@+id/btn_8"android:layout_width="80dp"android:layout_height="80dp"android:layout_marginLeft="10dip"android:background="@drawable/white_btn_selector"android:gravity="bottom|right"android:paddingBottom="10dp"android:paddingRight="10dp"android:text="8"android:textSize="20sp"/><Buttonandroid:id="@+id/btn_9"android:layout_width="80dp"android:layout_height="80dp"android:layout_marginLeft="10dip"android:background="@drawable/white_btn_selector"android:gravity="bottom|right"android:paddingBottom="10dp"android:paddingRight="10dp"android:text="9"android:textSize="20sp"/><Buttonandroid:id="@+id/btn_minus"android:layout_width="80dp"android:layout_height="80dp"android:layout_marginLeft="10dip"android:background="@drawable/white_btn_selector"android:gravity="bottom|right"android:paddingBottom="10dp"android:paddingRight="10dp"android:text="-"android:textSize="20sp"/></LinearLayout><LinearLayoutandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_marginTop="10dip"android:gravity="center_horizontal"android:orientation="horizontal"><Buttonandroid:id="@+id/btn_4"android:layout_width="80dp"android:layout_height="80dp"android:background="@drawable/white_btn_selector"android:gravity="bottom|right"android:paddingBottom="10dp"android:paddingRight="10dp"android:text="4"android:textSize="20sp"/><Buttonandroid:id="@+id/btn_5"android:layout_width="80dp"android:layout_height="80dp"android:layout_marginLeft="10dip"android:background="@drawable/white_btn_selector"android:gravity="bottom|right"android:paddingBottom="10dp"android:paddingRight="10dp"android:text="5"android:textSize="20sp"/><Buttonandroid:id="@+id/btn_6"android:layout_width="80dp"android:layout_height="80dp"android:layout_marginLeft="10dip"android:background="@drawable/white_btn_selector"android:gravity="bottom|right"android:paddingBottom="10dp"android:paddingRight="10dp"android:text="6"android:textSize="20sp"/><Buttonandroid:id="@+id/btn_pluse"android:layout_width="80dp"android:layout_height="80dp"android:layout_marginLeft="10dip"android:background="@drawable/white_btn_selector"android:gravity="bottom|right"android:paddingBottom="10dp"android:paddingRight="10dp"android:text="+"android:textSize="20sp"/></LinearLayout><LinearLayoutandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_marginTop="10dip"android:gravity="center_horizontal"android:orientation="horizontal"><LinearLayoutandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:orientation="vertical"><LinearLayoutandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:orientation="horizontal"><Buttonandroid:id="@+id/btn_1"android:layout_width="80dp"android:layout_height="80dp"android:background="@drawable/white_btn_selector"android:gravity="bottom|right"android:paddingBottom="10dp"android:paddingRight="10dp"android:text="1"android:textSize="20sp"/><Buttonandroid:id="@+id/btn_2"android:layout_width="80dp"android:layout_height="80dp"android:layout_marginLeft="10dip"android:background="@drawable/white_btn_selector"android:gravity="bottom|right"android:paddingBottom="10dp"android:paddingRight="10dp"android:text="2"android:textSize="20sp"/><Buttonandroid:id="@+id/btn_3"android:layout_width="80dp"android:layout_height="80dp"android:layout_marginLeft="10dip"android:background="@drawable/white_btn_selector"android:gravity="bottom|right"android:paddingBottom="10dp"android:paddingRight="10dp"android:text="3"android:textSize="20sp"/></LinearLayout><LinearLayoutandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="10dip"android:orientation="horizontal"><Buttonandroid:id="@+id/btn_0"android:layout_width="170dp"android:layout_height="80dp"android:background="@drawable/white_btn_selector"android:gravity="bottom|right"android:paddingBottom="10dp"android:paddingRight="10dp"android:text="0"android:textSize="20sp"/><Buttonandroid:id="@+id/btn_point"android:layout_width="80dp"android:layout_height="80dp"android:layout_marginLeft="10dip"android:background="@drawable/white_btn_selector"android:gravity="bottom|right"android:paddingBottom="10dp"android:paddingRight="10dp"android:text="."android:textSize="20sp"/></LinearLayout></LinearLayout><Buttonandroid:id="@+id/btn_equal"android:layout_width="80dp"android:layout_height="170dip"android:layout_marginLeft="10dip"android:background="@drawable/orange_btn_selector"android:gravity="bottom|right"android:paddingBottom="10dp"android:paddingRight="10dp"android:text="="android:textSize="20sp"/></LinearLayout><TextViewandroid:gravity="center"android:autoLink="web"android:layout_width="350dp"android:layout_height="0dp"android:layout_marginTop="20dp"android:layout_weight="1"android:text="微博:/Glorystys博客:/qq_26787115"android:textColor="@android:color/white"android:textSize="20sp"/></LinearLayout></LinearLayout>MainActivitypackagecom.lgl.calculator;importandroid.os.Bundle;importandroid.support.v7.app.AppCompatActivity;importandroid.view.View;importandroid.widget.Button;importandroid.widget.EditText;/***計(jì)算器*/publicclassMainActivityextendsAppCompatActivityimplementsView.OnClickListener{privateButtonbtn_0;privateButtonbtn_1;privateButtonbtn_2;privateButtonbtn_3;privateButtonbtn_4;privateButtonbtn_5;privateButtonbtn_6;privateButtonbtn_7;privateButtonbtn_8;privateButtonbtn_9;privateButtonbtn_point;//小數(shù)點(diǎn)privateButtonbtn_divide;//除以privateButtonbtn_multiply;//乘以privateButtonbtn_minus;//減去privateButtonbtn_pluse;//加privateButtonbtn_equal;//等于privateButtonbtn_clear;//清空privateButtonbtn_del;//取消privateEditTextet_showview;//輸入框privatedoubledou=0;//接收結(jié)果/***加一個(gè)標(biāo)識(shí)*需求就是我們運(yùn)算出結(jié)果的時(shí)候,再次點(diǎn)擊數(shù)字及你選哪個(gè)下一次運(yùn)算,這個(gè)時(shí)候,輸入框應(yīng)該自動(dòng)為空*/privatebooleanflag;//清空標(biāo)識(shí)@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(edInstanceState);setContentView(R.layout.activity_main);initView();}privatevoidinitView(){btn_0=(Button)findViewById(R.id.btn_0);btn_1=(Button)findViewById(R.id.btn_1);btn_2=(Button)findViewById(R.id.btn_2);btn_3=(Button)findViewById(R.id.btn_3);btn_4=(Button)findViewById(R.id.btn_4);btn_5=(Button)findViewById(R.id.btn_5);btn_6=(Button)findViewById(R.id.btn_6);btn_7=(Button)findViewById(R.id.btn_7);btn_8=(Button)findViewById(R.id.btn_8);btn_9=(Button)findViewById(R.id.btn_9);btn_point=(Button)findViewById(R.id.btn_point);//小數(shù)點(diǎn)btn_divide=(Button)findViewById(R.id.btn_divide);//除以btn_multiply=(Button)findViewById(R.id.btn_multiply);//乘以btn_minus=(Button)findViewById(R.id.btn_minus);//減去btn_pluse=(Button)findViewById(R.id.btn_pluse);//加btn_equal=(Button)findViewById(R.id.btn_equal);//等于btn_clear=(Button)findViewById(R.id.btn_clear);btn_del=(Button)findViewById(R.id.btn_del);et_showview=(EditText)findViewById(R.id.et_showview);btn_0.setOnClickListener(this);btn_1.setOnClickListener(this);btn_2.setOnClickListener(this);btn_3.setOnClickListener(this);btn_4.setOnClickListener(this);btn_5.setOnClickListener(this);btn_6.setOnClickListener(this);btn_7.setOnClickListener(this);btn_8.setOnClickListener(this);btn_9.setOnClickListener(this);btn_point.setOnClickListener(this);btn_divide.setOnClickListener(this);btn_multiply.setOnClickListener(this);btn_minus.setOnClickListener(this);btn_pluse.setOnClickListener(this);btn_equal.setOnClickListener(this);btn_clear.setOnClickListener(this);btn_del.setOnClickListener(this);}@OverridepublicvoidonClick(Viewv){//我們?cè)谶@里實(shí)現(xiàn)業(yè)務(wù)邏輯Stringstr=et_showview.getText().toString();switch(v.getId()){//我們點(diǎn)擊數(shù)字鍵,輸入框就收到我們的計(jì)算數(shù)字caseR.id.btn_0:caseR.id.btn_1:caseR.id.btn_2:caseR.id.btn_3:caseR.id.btn_4:caseR.id.btn_5:caseR.id.btn_6:caseR.id.btn_7:caseR.id.btn_8:caseR.id.btn_9:caseR.id.btn_point://再次輸入的時(shí)候判斷,把前面的清空,再把點(diǎn)擊的按鈕放在輸入框上if(flag){flag=false;str="";et_showview.setText("");}//我們只要點(diǎn)擊鍵盤,相應(yīng)的數(shù)字添加在EditText上et_showview.setText(str+((Button)v).getText());break;//運(yùn)算符也是一樣需要添加的caseR.id.btn_pluse:caseR.id.btn_minus:caseR.id.btn_multiply:caseR.id.btn_divide://再次輸入的時(shí)候判斷,把前面的清空,再把點(diǎn)擊的按鈕放在輸入框上if(flag){flag=false;str="";et_showview.setText("");}//為了計(jì)算方便,我們可以在前后添加空格et_showview.setText(str+""+((Button)v).getText()+"");break;caseR.id.btn_del://再次輸入的時(shí)候判斷,把前面的清空,再把點(diǎn)擊的按鈕放在輸入框上if(flag){flag=false;str="";et_showview.setText("");}elseif(str!=null&&!str.equals("")){//判斷,因?yàn)槲覀冃枰粋€(gè)個(gè)刪,首先確定是不是空或者""http://用substring()截取字符長(zhǎng)度-1再設(shè)置回去形成刪一個(gè)的效果et_showview.setText(str.substring(0,str.length()-1));}break;//清除按鈕,直接把輸入框設(shè)置成空caseR.id.btn_clear:flag=false;str="";et_showview.setText("");break;//計(jì)算結(jié)果caseR.id.btn_equal:getResult();break;}}//等號(hào)計(jì)算結(jié)果privatevoidgetResult(){//首先取一下你輸入完后現(xiàn)在輸入框的內(nèi)容Stringresult=et_showview.getText().toString();//當(dāng)我們的輸入框是null或者""時(shí)我們不進(jìn)行操作if(result==null||result.equals("")){return;}//我們要計(jì)算結(jié)果,必須知道輸入框是否有操作符,判斷條件就是前后是否在空格,否則不進(jìn)行操作if(!result.contains("")){//沒(méi)有運(yùn)算符,所以不用運(yùn)算return;}//當(dāng)我點(diǎn)擊等號(hào)的時(shí)候,清空標(biāo)識(shí)設(shè)置為true,但是如果之前有的話,設(shè)置成falseif(flag){flag=false;return;}flag=true;//如果有空格,我們就截取前后段再獲取運(yùn)算符進(jìn)行計(jì)算Stringstr1=result.substring(0,result.indexOf(""));//運(yùn)算符前面字段Stringop=result.substring(result.indexOf("")+1,result.indexOf("")+2);//截取運(yùn)算符Stri
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 臨時(shí)工招募:2024學(xué)校勤雜工勞動(dòng)協(xié)議
- 2025年數(shù)據(jù)中心場(chǎng)承包運(yùn)營(yíng)管理協(xié)議4篇
- 專項(xiàng)龍門吊租賃協(xié)議格式范本2024版B版
- 2025年度健身中心場(chǎng)地租賃及私人教練服務(wù)合同4篇
- 二零二四商鋪?zhàn)赓U合同(含租賃期間租賃物處置及變現(xiàn)條款)3篇
- 2025不銹鋼精密鑄造件加工與銷售合作協(xié)議2篇
- 2025年度文化衍生品研發(fā)、生產(chǎn)及銷售合作協(xié)議4篇
- 二零二五年度餐飲業(yè)人力資源外包合同6篇
- 2024藥店負(fù)責(zé)人任期藥店經(jīng)營(yíng)數(shù)據(jù)統(tǒng)計(jì)與分析聘用合同3篇
- 一次性付款房地產(chǎn)轉(zhuǎn)讓合同(2024年版)
- 《材料合成與制備技術(shù)》課程教學(xué)大綱(材料化學(xué)專業(yè))
- 小紅書食用農(nóng)產(chǎn)品承諾書示例
- 釘釘OA辦公系統(tǒng)操作流程培訓(xùn)
- 新生兒科年度護(hù)理質(zhì)控總結(jié)
- GB/T 15934-2024電器附件電線組件和互連電線組件
- 《工貿(mào)企業(yè)有限空間作業(yè)安全規(guī)定》知識(shí)培訓(xùn)
- 高層次人才座談會(huì)發(fā)言稿
- 垃圾清運(yùn)公司管理制度(人員、車輛、質(zhì)量監(jiān)督、會(huì)計(jì)管理制度)
- 《建筑工程設(shè)計(jì)文件編制深度規(guī)定》(2022年版)
- 營(yíng)銷人員薪酬考核方案
- 2024至2030年中國(guó)it外包服務(wù)行業(yè)市場(chǎng)深度分析及發(fā)展趨勢(shì)預(yù)測(cè)報(bào)告
評(píng)論
0/150
提交評(píng)論