一、單個按鈕點擊事件的監聽 方法一 [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; @Overridepublic 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{@Overridepublic void onClick(View v){// 圖片路徑String path = txtPath.getText().toString();try{// 擷取圖片的位元據byte[] imgdata = ImageService.getImage(path);// 利用Bitmap工廠產生BitmapBitmap 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; @Overridepublic 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);} @Overridepublic 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("");}}