为了账号安全,请及时绑定邮箱和手机立即绑定

如何将OnClickListener从Activity传递到Fragment

如何将OnClickListener从Activity传递到Fragment

慕桂英3389331 2021-05-21 17:02:03
我需要将OnClickListener对象从活动传递到Fragment。我无法将参数传递给Fragment构造函数,所以我想做类似的事情:Bundle bundle = new Bundle();bundle.putCustomObject(new OnClickListener(){...});
查看完整描述

2 回答

?
红颜莎娜

TA贡献1842条经验 获得超12个赞

在片段中添加一个方法:

public void setOnClickListener(OnClickListener listener) { mListener = listener;}

调用Fragment的方法:

mFragment.setOnClickListener(new OnClickListener() { /* YOUR CODE HERE */ });


查看完整回答
反对 回复 2021-05-26
?
不负相思意

TA贡献1777条经验 获得超10个赞

我认为最好的方法是创建一个interfacewith方法onClick(),并将回调设置为从Activity到Fragment。


界面


public interface FragmentClickListener

{

    void onClick();

}

在Fragment类中创建一个变量和方法以接收FragmentClickListener:


private FragmentClickListener listener;


public void setOnClickListener(FragmentClickListener listener)

{

    this.listener = listener;

}

然后,在您的Fragment类的某些方法中,您可以像这样调用侦听器:


void someMethod()

{

    if(listener != null) {

        listener.onClick();

    }

}

在您的Activity类中,如下定义回调:


fragment.setOnClickListener(new FragmentClickListener(){

    @Override

    public void onClick() {

            //do something here

    }

});


查看完整回答
反对 回复 2021-05-26
  • 2 回答
  • 0 关注
  • 196 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信