android控件的监听绑定方法
16lz
2021-01-23
总结一下,android的监听绑定方法主要有一下五种方法。分别讲述一下:
【方法一】通过xml文件绑定
首先讲的这种方法比较少使用。在支付宝第三方中有应用。
在xml布局文件中,通过android:onClick="method_name"方法绑定一个方法名为method_name的监听相应,在点击时会通过反射的方法调用该方法。在这段代码中,给button绑定了一个方法名为pay的监听相应。对应的,在使用这个xml的Activity中,需要实现该pay()方法。
public void pay(View v) {//your method}
在OnCreate中是需要setContentView(),甚至不需要findViewById就可以实现监听绑定了。 【方法二】匿名内部类
这种方法较为简便,但是在需要绑定的监听较多的情况下,代码可读性下降。在空间较多的Activity中不建议使用。例如给ivImage设置监听
ivImage.setOnClickListener(new OnClickListener() {public void onClick(View v) {//your method}});
这种方法比较清晰。在控件或者监听较多的情况下,使用该方法比较方便。而且实现事件监听类可以在构造方法中传入一些必须的参数。
public class shareButtonListener implements OnClickListener {private Content contentChoose;public shareButtonListener(Content content) {
//传入Content类型super();this.contentChoose = content;}public shareButtonListener() {super();}@Overridepublic void onClick(View v) {// TODO Auto-generated method stub// your method}};
【方法五】Activity继承View.OnClickListener,由Activity实现OnClick(View view)方法,在OnClick(View view)方法中用switch-case对不同id代表的button进行相应的处理。但是这种方法在需要绑定的控件监听较多的情况下,可读性也就太好。 public class TestButtonActivity extends Activity implements OnClickListener { Button btn1, btn2; Toast tst; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_test_button); btn1 = (Button) findViewById(R.id.button1); btn2 = (Button) findViewById(R.id.button2); btn1.setOnClickListener(this); btn2.setOnClickListener(this); } @Override public void onClick(View v) { // TODO Auto-generated method stub switch (v.getId()) { case R.id.button1: tst = Toast.makeText(this, "111111111", Toast.LENGTH_SHORT); tst.show(); break; case R.id.button2: tst = Toast.makeText(this, "222222222", Toast.LENGTH_SHORT); tst.show(); break; default: break; } }}
更多相关文章
- 如何向Android的framework里添加新类 &&& android修改开放类方法
- Android swap分区作用及swapper软件设置方法
- android Matrix处理图片原理及方法整理
- android studio打开旧项目遇到build.gradle相关的问题解决方法
- android判断模拟器的三种方法
- android获取资源文件R.drawable中的图片的相关方法