Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android開發——單個監聽器監聽多個按鈕點擊事件

Android開發——單個監聽器監聽多個按鈕點擊事件

編輯:關於Android編程

一、單個按鈕點擊事件的監聽       方法一   [java]   /**   * 從網絡上獲取圖片   *    * @author 徐越   *    */   public class MainActivity extends Activity   {       private EditText txtPath;       private Button btnShowImage;       private ImageView imgView;          @Override       public void onCreate(Bundle savedInstanceState)       {           super.onCreate(savedInstanceState);           setContentView(R.layout.main);           txtPath = (EditText) this.findViewById(R.id.txtPath);           btnShowImage = (Button) this.findViewById(R.id.btnShowImage);           imgView = (ImageView) this.findViewById(R.id.imgView);           btnShowImage.setOnClickListener(new ShowImageListener());       }          private final class ShowImageListener implements View.OnClickListener       {           @Override           public void onClick(View v)           {               // 圖片路徑                String path = txtPath.getText().toString();               try               {                   // 獲取圖片的二進制數據                    byte[] imgdata = ImageService.getImage(path);                   // 利用Bitmap工廠生成Bitmap                    Bitmap bitmap = BitmapFactory.decodeByteArray(imgdata, 0, imgdata.length);                   // imageView接收Bitmap並顯示                    imgView.setImageBitmap(bitmap);               }               catch (Exception e)               {                   Toast.makeText(MainActivity.this, "讀取圖片失敗", Toast.LENGTH_SHORT).show();               }           }       }   }     /**  * 從網絡上獲取圖片  *   * @author 徐越  *   */ public class MainActivity extends Activity { private EditText txtPath; private Button btnShowImage; private ImageView imgView;   @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); txtPath = (EditText) this.findViewById(R.id.txtPath); btnShowImage = (Button) this.findViewById(R.id.btnShowImage); imgView = (ImageView) this.findViewById(R.id.imgView); btnShowImage.setOnClickListener(new ShowImageListener()); }   private final class ShowImageListener implements View.OnClickListener { @Override public void onClick(View v) { // 圖片路徑 String path = txtPath.getText().toString(); try { // 獲取圖片的二進制數據 byte[] imgdata = ImageService.getImage(path); // 利用Bitmap工廠生成Bitmap Bitmap bitmap = BitmapFactory.decodeByteArray(imgdata, 0, imgdata.length); // imageView接收Bitmap並顯示 imgView.setImageBitmap(bitmap); } catch (Exception e) { Toast.makeText(MainActivity.this, "讀取圖片失敗", Toast.LENGTH_SHORT).show(); } } } } 方法二   在布局頁面中給該按鈕加上android:onClick="showImage",然後再顯示該元素的Activity中加入showImage(View v)的方法,在該方法中進行操作。           二、多個按鈕點擊事件的監聽       方法一   在Activity中按照第一個大標題的方法,給每個按鈕寫一個監聽類或者監聽方法。       方法二   利用一個監聽器監聽所有按鈕的點擊事件   [java]   /**   * 查詢號碼歸屬地   *    * @author 徐越   *    */   public class MainActivity extends Activity implements View.OnClickListener   {       private EditText txtPhone;       private TextView lblAddress;       private Button btnQuery;       private Button btnReset;       private CallAddressQueryService callAddressQueryService = new CallAddressQueryService();       private final int CLICK_QUERY = 1;       private final int CLICK_RESET = 2;          @Override       public void onCreate(Bundle savedInstanceState)       {           super.onCreate(savedInstanceState);           setContentView(R.layout.main);           lblAddress = (TextView) this.findViewById(R.id.lblAddress);           txtPhone = (EditText) this.findViewById(R.id.txtPhone);           btnQuery = (Button) this.findViewById(R.id.btnQuery);           btnReset = (Button) this.findViewById(R.id.btnReset);           btnQuery.setOnClickListener(this);           btnQuery.setTag(CLICK_QUERY);           btnReset.setOnClickListener(this);           btnReset.setTag(CLICK_RESET);       }          @Override       public void onClick(View v)       {           int tag = (Integer) v.getTag();           switch (tag)           {               case CLICK_QUERY:                   query();                   break;               case CLICK_RESET:                   reset();                   break;           }       }          public void query()       {           String phone = txtPhone.getText().toString();           try           {               lblAddress.setText("查詢中");               String address = callAddressQueryService.getCallAddress(phone);               lblAddress.setText(address);           }           catch (Exception e)           {               e.printStackTrace();               Toast.makeText(this, "查詢失敗", Toast.LENGTH_LONG).show();           }       }          public void reset()       {           txtPhone.setText("");           lblAddress.setText("");       }   }     /**  * 查詢號碼歸屬地  *   * @author 徐越  *   */ public class MainActivity extends Activity implements View.OnClickListener { private EditText txtPhone; private TextView lblAddress; private Button btnQuery; private Button btnReset; private CallAddressQueryService callAddressQueryService = new CallAddressQueryService(); private final int CLICK_QUERY = 1; private final int CLICK_RESET = 2;   @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); lblAddress = (TextView) this.findViewById(R.id.lblAddress); txtPhone = (EditText) this.findViewById(R.id.txtPhone); btnQuery = (Button) this.findViewById(R.id.btnQuery); btnReset = (Button) this.findViewById(R.id.btnReset); btnQuery.setOnClickListener(this); btnQuery.setTag(CLICK_QUERY); btnReset.setOnClickListener(this); btnReset.setTag(CLICK_RESET); }   @Override public void onClick(View v) { int tag = (Integer) v.getTag(); switch (tag) { case CLICK_QUERY: query(); break; case CLICK_RESET: reset(); break; } }   public void query() { String phone = txtPhone.getText().toString(); try { lblAddress.setText("查詢中"); String address = callAddressQueryService.getCallAddress(phone); lblAddress.setText(address); } catch (Exception e) { e.printStackTrace(); Toast.makeText(this, "查詢失敗", Toast.LENGTH_LONG).show(); } }   public void reset() { txtPhone.setText(""); lblAddress.setText(""); } }   
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved