欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android响应事件onClick方法的五种实现方式小结

程序员文章站 2023-11-27 08:40:34
在android的开发中,对于点击事件的onclicklistener有下面四种实现方式,可以根据实际场景的需要选择合适的用法。下面以button按钮来举例说明。 方...

在android的开发中,对于点击事件的onclicklistener有下面四种实现方式,可以根据实际场景的需要选择合适的用法。下面以button按钮来举例说明。

方法一:

适合场景:任何场景都通用,但对于一个activity中要是有多个控件要实现onclick方法就会显得代码冗余。

 button bt_demo = (button)findviewbyid(r.id.bt_demo);
 bt_demo.setonclicklistener(new onclicklistener() {
 @override
 public void onclick(view v) {
    //具体点击操作的逻辑
 }
 });

方法二:

适合场景:适合有多个同类型控件(比如button数组)要实现onclick()方法时使用

button[] demobtns ;
……
for(button button : demobtns ){
   button.setonclicklistener(listener);
}

 private onclicklistener listener = new onclicklistener(){ 
 @override
 public void onclick(view arg0) {
  // todo auto-generated method stub 
  switch(arg0.getid()){ 
   case r.id.btn_demo:
      //具体点击操作的逻辑
      break;
   default:
      break;
   }
 }
 }

方法三:

适合场景:同方法二,两者差别不大

button bt_demo = (button)findviewbyid(r.id.bt_demo);
 bt_demo.setonclicklistener(new buttonlistener());
 private class buttonlistener implements onclicklistener{
 @override
 public void onclick(view arg0) {
   // todo auto-generated method stub 
   switch(arg0.getid()){ 
   case r.id.btn_demo:
      //具体点击操作的逻辑
      break;
   default:
      break;
   }
 } 
 }

方法四:

适合场景:适合界面上有不同类型的控件,这种方式将所有控件的onclick方法在一个方法里面实现,看起来比较简洁

在activity中实现onclicklistener接口:

 public class myactivity extends activity implements onclicklistener {
  @override 
  public void oncreate(bundle savedinstancestate) {
   super.oncreate(savedinstancestate);
   setcontentview(r.layout.main);
   //按纽
   button btn_demo = (button)findviewbyid(r.id.bt_demo);
   bt_demo.setonclicklistener(this); 
  }

  @override 
  public void onclick(view v) {
   switch(arg0.getid()){ 
   case r.id.btn_demo:
      //具体点击操作的逻辑
      break;
   default:
      break;
   }
  }
 }

方法五:

适合场景:通用场景,特别是某个控件的点击方法要实现的逻辑较复杂的时候使用。

在布局文件中加上android:onclick="方法名",对于有些控件(比如textview)需要兼容旧的sdk api,还需要加上android:clickable="true"

<textview
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:clickable="true"
     android:onclick="ontextviewclick"
     android:text="点击事件"
     android:textsize="16sp" />
//在代码中实现ontextviewclick()方法即可。
public void ontextviewclick(){
  //具体点击操作的逻辑
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。