有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java每个类都必须有自己的OnClickListener吗?

总Android初学者在这里

我有一个带有OnClick侦听器的活动,如本例所示:Multiple Buttons `OnClickListener()` 安卓

现在我正在另一个活动中设置一个浮动操作按钮的侦听器。我不确定的是,是否可以使用同一个侦听器,或者每个类都必须有自己的侦听器

ACTIVITY #1 // a regular activity
public class Requests extends AppCompatActivity implements View.OnClickListener {...}

ACTIVITY #2 // A RecyclerView, CardView type activity
public static class MyViewHolder extends RecyclerView.ViewHolder {...}

我真的希望有一个监听器来处理cardview点击事件,以及浮动操作按钮


共 (3) 个答案

  1. # 1 楼答案

    通常,您可以对多个按钮使用同一个侦听器。如果它们处于不同的活动中,您可以编写一个单独的类来实现视图。我的听众。像这样:

    public class MyButtonListener implements View.OnClickListener {
    
    @Override
    public void onClick(View v) {
      switch (v.getId()) {
    
        case R.id.oneButton:
            // do your code
            break;
    
        case R.id.twoButton:
            // do your code
            break;
    
        case R.id.threeButton:
            // do your code
            break;// default method for handling onClick Events..
    }
    

    }

    然后您只需将按钮侦听器设置为button.setOnClicklistener(new MyOnClickListener());

    如果您的按钮都在执行相同的操作,则不需要开关盒块

    创建一个单独的监听器类并不是一个坏主意,但是:您应该尝试为每个活动实现一个监听器类,以便对您的按钮操作进行概述

  2. # 2 楼答案

    要对不同视图或视图组的click事件执行相同的操作,请为OnClickListener实现一个匿名类

    View.OnClickListener mOnClickListener= new View.OnClickListener() {  
     @Override public void onClick(View v) {    /*do your code */ }};   
    

    或者在你的活动中将其称为

     mbutton.setOnClickListener(mOnClickListener);   
        mcardView.setOnClickListener(mOnClickListener);
    
  3. # 3 楼答案

    您可以使用下面链接中提到的代码snipet

    Handle click item in Recycleview

    在onClick和onItemClick Override侦听器中,您可以按位置实现浮动操作按钮和cardview单击事件