每个班级都必须拥有自己的OnClickListener吗?

时间:2017-10-11 09:23:52

标签: java android onclicklistener

这里的Android初学者总数......

我有一个带有OnClick侦听器的Activity,如下例所示:Multiple Buttons `OnClickListener()` android

现在我在另一个活动中设置了一个关于Floating Action Button的监听器。我不确定的是,是否可以使用相同的听众,或者每个班级是否必须拥有它?

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 个答案:

答案 0 :(得分:2)

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

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());

如果你的按钮都在做同样的动作,你就不需要开关盒了。

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

答案 1 :(得分:0)

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

Handle click item in Recycleview

在onClick和onItemClick Override监听器中,您可以实现浮动操作按钮和位置明智的cardview点击事件

答案 2 :(得分:0)

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

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

或在您的活动中将其称为

 mbutton.setOnClickListener(mOnClickListener);   
    mcardView.setOnClickListener(mOnClickListener);