Android监听器实现的四种方式

1、

直接通过id查找后,绑定匿名内部类作为事件监听类。代码如下:

Button loginButton = (Button) findViewById(R.id.tologin1);

btn1.setOnclickListener(new OnclickListener(){

 public void onClick(View v){

 // 要执行的操作

 }

});

优点:好的是比较直观方便 缺点:如果按钮多了,代码看起来比较乱。

2、

实现点击事件的接口,然后一个个按钮地去绑定,最后统一做处理。代码如下:

public class ActivityLogin1 extends Activity implements View.OnClickListener

btnLogin = (Button) findViewById(R.id.btnLogin);

        btnLogin.setOnClickListener(this);

btnBack = (Button) findViewById(R.id.back);

       btnBack.setOnClickListener(this);

@Override

      public void onClick(View v) {

      switch (v.getId()) {

      case R.id.back:

 //对应操作

break;

case R.id.btnLogin:

//对应操作

break;

.......

}

}

这种方法有点批量处理的味道。统一处理,可以让代码看起来更加结构化。

3、(推荐使用

自定义监听事件类,实现点击事件的接口。代码如下:

Button btn1=(Button)findViewById(R.id.myButton1);

Button btn2=(Button)findViewById(R.id.myButton2);

btn1.setOnclickListener(new Startclick());

btn2.setOnclickListener(new Stopclick());

class StartClick implements OnClickListener{

 public void onClick(View v){//或直接跟上要执行的动作

 switch(v.getId()){

 case R.id.myButton1:

 //要执行的动作

 }

 }

}

class StopClick implements OnClickListener{或直接跟上要执行的动作

 public void onClick(View v){

 switch(v.getId()){

 case R.id.myButton2:

 //要执行的动作

 }

 }

}

第三种方法我用得比较少,代码参考别人的。详情可见,http://blog.sina.com.cn/s/blog_48b5bee10102uwmz.html

4、(推荐使用

我要重点说一下第四种方法。因为比较常用第一种和第二种,有次看支付宝开发集成demo时,找按钮的监听事件找了半天找不到。那里面使用的就是这种绑定方式。代码如下:

<button

android:id="@+id/pay"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:layout_margin="10dp"

android:onClick="pay"

android:text="支付"

tools:ignore="HardcodedText" />

public void pay(View v) {

//要执行的操作

}

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android 应用程序中,实现事件监听可以使用以下几种方式: 1. 匿名内部类 使用匿名内部类来实现事件监听,通常用于只需要在一个地方使用的简单事件监听。例如,在按钮的点击事件上添加一个匿名内部类,可以在按钮被点击时执行相应的操作。示例代码如下: ``` Button button = findViewById(R.id.button); button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // 执行相应的操作 } }); ``` 2. 内部类 使用内部类来实现事件监听,通常用于需要在多个地方使用的复杂事件监听。例如,创建一个内部类 MyClickListener 来实现按钮的点击事件监听,并在多个 Activity 中使用该监听器。示例代码如下: ``` public class MainActivity extends AppCompatActivity { private Button button; private MyClickListener clickListener; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button = findViewById(R.id.button); clickListener = new MyClickListener(); button.setOnClickListener(clickListener); } private class MyClickListener implements OnClickListener { @Override public void onClick(View v) { // 执行相应的操作 } } } ``` 3. 外部类 使用外部类来实现事件监听,通常用于需要在多个 Activity 或 Fragment 中使用的复杂事件监听。例如,创建一个外部类 MyClickListener 来实现按钮的点击事件监听,并在多个 Activity 或 Fragment 中使用该监听器。示例代码如下: ``` public class MyClickListener implements OnClickListener { @Override public void onClick(View v) { // 执行相应的操作 } } public class MainActivity extends AppCompatActivity { private Button button; private MyClickListener clickListener; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button = findViewById(R.id.button); clickListener = new MyClickListener(); button.setOnClickListener(clickListener); } } public class SecondActivity extends AppCompatActivity { private Button button; private MyClickListener clickListener; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_second); button = findViewById(R.id.button); clickListener = new MyClickListener(); button.setOnClickListener(clickListener); } } ``` 4. XML 中定义 使用 XML 中定义事件监听,与在代码实现事件监听类似。例如,在布局文件中定义一个 Button,使用 android:onClick 属性来指定按钮的点击事件监听。示例代码如下: ``` <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Click Me" android:onClick="onButtonClick" /> ``` 在 Activity 或 Fragment 中定义一个名为 onButtonClick 的方法,该方法将自动成为按钮的点击事件监听。示例代码如下: ``` public void onButtonClick(View view) { // 执行相应的操作 } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值