您的位置:首页 > 移动开发 > Android开发

【转】Android开发20——单个监听器监听多个按钮点击事件

2015-03-25 11:53 405 查看
原文网址:/article/4125584.html

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。/article/4125584.html

一、单个按钮点击事件的监听

方法一

/**

* 从网络上获取图片

*

* @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中按照第一个大标题的方法,给每个按钮写一个监听类或者监听方法。

方法二

利用一个监听器监听所有按钮的点击事件

/**

* 查询号码归属地

*

* @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("");

}

}

本文出自 “IT徐胖子的专栏” 博客,请务必保留此出处/article/4125584.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: