android經典簡單小項目
如果你想了解更多关于Android的知识,可以点击:Android手册
这个小项目除了要我们活用按钮的组之外,也示范如何利用同一个监听处理不同事件然后与TextView的文字作出相应的变化废话不多说。
这个项目最直接的处理办法就是每一个按钮设置一个监听事件然後在每一个事件上处理即可,没错。这个办法是可行的但最后我们看到的代码是不是很不优雅,有很多重复的操作?所以我们想到了用一个监听事件来处理不同的事件。那要怎么做呢?跟着我一起来做吧大概代码如下:声明一个点击的监听事件。
private OnClickListener listener; listener= new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub switch (v.getId()) { case R.id.Button01: if(isEmpty(mEditText1,mEditText2)==false) { Confirm().show(); return; } mTextView1.setText("+"); StrTemp=Float.toString((Float.parseFloat(mEditText1.getText().toString())+ (Float.parseFloat(mEditText2.getText().toString())))); mTextView2.setText(StrTemp); break; case R.id.Button02: if(isEmpty(mEditText1,mEditText2)==false) { Confirm().show(); return; } mTextView1.setText("-"); StrTemp=Float.toString((Float.parseFloat(mEditText1.getText().toString())- (Float.parseFloat(mEditText2.getText().toString())))); mTextView2.setText(StrTemp); break; case R.id.Button03: if(isEmpty(mEditText1,mEditText2)==false) { Confirm().show(); return; } mTextView1.setText("*"); StrTemp=Float.toString((Float.parseFloat(mEditText1.getText().toString())* (Float.parseFloat(mEditText2.getText().toString())))); mTextView2.setText(StrTemp); break; case R.id.Button04: if(isEmpty(mEditText1,mEditText2)==false) { Confirm().show(); return; } mTextView1.setText("/"); StrTemp=Float.toString((Float.parseFloat(mEditText1.getText().toString())/ (Float.parseFloat(mEditText2.getText().toString())))); mTextView2.setText(StrTemp); break; default: break; } } };
代码简单明了,通过getid()这个方法可以得到相应的按钮,之后处理。OK 代码大致上是这样,之后设置按钮的单击事件
mButton1.setOnClickListener(listener); mButton2.setOnClickListener(listener); mButton3.setOnClickListener(listener); mButton4.setOnClickListener(listener);
代码里面也顺便封装了弹出提出框代码如下:
public AlertDialog Confirm() { alert=new AlertDialog.Builder(SimpleCalc.this) .setTitle(R.string.confirm) .setMessage(R.string.content) .setPositiveButton(R.string.OK, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub } }) .create(); return alert; }
到此为止一个简单的计算器己经完成,下次我们将把按钮全都放在屏幕 上再利用事件传递的方法来完成 ,通过点击按钮数字来计算,相信有看到这一篇的朋友知道应该知道怎么做了。
以上是android經典簡單小項目的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

最近幾天,Ice Universe 不斷披露有關 Galaxy S25 Ultra 的詳細信息,人們普遍認為這款手機將是三星的下一款旗艦智慧型手機。除此之外,洩密者聲稱三星只計劃升級一台相機

OnLeaks 現在與 Android Headlines 合作,首次展示了 Galaxy S25 Ultra,幾天前,他試圖從他的 X(以前的 Twitter)粉絲那裡籌集到 4,000 美元以上的資金,但失敗了。對於上下文,嵌入在 h 下面的渲染圖像

除了發布兩款新智慧型手機外,TCL 還發布了一款名為 NXTPAPER 14 的新 Android 平板電腦,其大螢幕尺寸是其賣點之一。 NXTPAPER 14 採用 TCL 標誌性品牌霧面液晶面板 3.0 版本

Vivo Y300 Pro剛剛全面亮相,它是最薄的中階Android手機之一,配備大電池。準確來說,這款智慧型手機厚度僅為 7.69 毫米,但配備 6,500 mAh 電池。這與最近推出的容量相同

三星尚未就何時更新其 Fan Edition (FE) 智慧型手機系列提供任何提示。目前來看,Galaxy S23 FE 仍然是該公司的最新版本,於 2023 年 10 月年初推出。

最近幾天,Ice Universe 不斷披露有關 Galaxy S25 Ultra 的詳細信息,人們普遍認為這款手機將是三星的下一款旗艦智慧型手機。除此之外,洩密者聲稱三星只計劃升級一台相機

Redmi Note 14 Pro Plus 現已正式成為去年 Redmi Note 13 Pro Plus 的直接後繼產品(亞馬遜售價 375 美元)。正如預期的那樣,Redmi Note 14 Pro Plus與Redmi Note 14和Redmi Note 14 Pro一起成為Redmi Note 14系列的主角。李

摩托羅拉今年發布了無數設備,儘管其中只有兩款是可折疊的。就上下文而言,雖然世界上大多數地區都收到了 Razr 50 和 Razr 50 Ultra,但摩托羅拉在北美提供了 Razr 2024 和 Razr 2