Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發實例 >> Android 小項目之---- 計算器 使用同一個事件監聽完成 加減乘除 (附源碼)

Android 小項目之---- 計算器 使用同一個事件監聽完成 加減乘除 (附源碼)

編輯:Android開發實例

  這個小項目除了要我們活用按鈕的組之外,也示范如何利用同一個監聽處理不同事件然後與TextView的文字作出相應的變化

  廢話不多說:效果圖如下:

  看到這個界面可能最直接的處理辦法就是每一個按鈕設置一個監聽事件然後在每一個事件上處理即可,沒錯。這個辦法是可行的

  但最後我們看到的代碼是不是很不優雅,有很多重複的操作?所以我們想到了用一個監聽來處理不同的事件。那要怎麼做呢?跟著我一起來做吧

大概代碼如下:聲明一個點擊的監聽事件

private OnClickListener listener;

 

 

 1 listener= new OnClickListener() {
 2             
 3             @Override
 4             public void onClick(View v) {
 5                 // TODO Auto-generated method stub
 6                 switch (v.getId()) {
 7                 case R.id.Button01:
 8                      if(isEmpty(mEditText1,mEditText2)==false)
 9                      {
10                          Confirm().show();
11                             return;
12                      }
13                     mTextView1.setText(" ");
14                     StrTemp=Float.toString((Float.parseFloat(mEditText1.getText().toString())
15                             (Float.parseFloat(mEditText2.getText().toString()))));
16                     mTextView2.setText(StrTemp);
17                     break;
18                 case R.id.Button02:
19                      if(isEmpty(mEditText1,mEditText2)==false)
20                      {
21                          Confirm().show();
22                             return;
23                      }
24                     mTextView1.setText("-");
25                     StrTemp=Float.toString((Float.parseFloat(mEditText1.getText().toString())-
26                             (Float.parseFloat(mEditText2.getText().toString()))));
27                     mTextView2.setText(StrTemp);
28                     break;
29                 case R.id.Button03:
30                      if(isEmpty(mEditText1,mEditText2)==false)
31                      {
32                          Confirm().show();
33                             return;
34                      }
35                     mTextView1.setText("*");
36                     StrTemp=Float.toString((Float.parseFloat(mEditText1.getText().toString())*
37                             (Float.parseFloat(mEditText2.getText().toString()))));
38                     mTextView2.setText(StrTemp);
39                     break;
40                 case R.id.Button04: 
41                      if(isEmpty(mEditText1,mEditText2)==false)
42                      {
43                          Confirm().show();
44                             return;
45                      }
46                     mTextView1.setText("/"); 
47                     StrTemp=Float.toString((Float.parseFloat(mEditText1.getText().toString())/
48                             (Float.parseFloat(mEditText2.getText().toString()))));
49                     mTextView2.setText(StrTemp);
50                     break;
51                 default:
52                     break;
53                 }
54             }
55         };

 

 

代碼簡單明了,通過getid()這個方法可以得到相應的按鈕,之後處理。OK  代碼大致上是這樣,之後設置按鈕的單擊事件

 

mButton1.setOnClickListener(listener);
        mButton2.setOnClickListener(listener);
        mButton3.setOnClickListener(listener);
        mButton4.setOnClickListener(listener);

 

 

代碼裏面也順便封裝了彈出提出框代碼如下:

 

   1   public AlertDialog Confirm()
 2     {
 3          
 4             alert=new AlertDialog.Builder(SimpleCalc.this)
 5             .setTitle(R.string.confirm)
 6             .setMessage(R.string.content)
 7             .setPositiveButton(R.string.OK, new DialogInterface.OnClickListener() {
 8                 
 9                 @Override
10                 public void onClick(DialogInterface dialog, int which) {
11                     // TODO Auto-generated method stub
12                     
13                 }
14             })
15             .create();
16          
17         return alert;
18     }

 

檢查文本框是否為空的方法

 

代碼  1 public boolean isEmpty(EditText e,EditText a)
 2     {
 3         if(e.getText().toString().length()>0 && a.getText().toString().length()>0)
 4         {
 5             isbool= true;
 6         }
 7         else
 8         {
 9             isbool=false;
10         }
11         return isbool;
12     }

 

 

到此為止一個簡單的計算器己經完成,下次我們將把按鈕全都放在屏幕 上再利用事件傳遞的方法來完成 ,通過點擊按鈕數字來計算,相信有看到這一篇的朋友知道

應該知道怎麼做了。

未完待續。。。。

源碼:點擊下載:/Files/TerryBlog/SimpleCalc.rar

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved