如何将OnClickListener从Activity传递到Fragment

我需要将OnClickListener对象从活动传递到Fragment。我无法将参数传递给Fragment构造函数,所以我想做类似的事情:


Bundle bundle = new Bundle();

bundle.putCustomObject(new OnClickListener(){...});


慕桂英3389331
浏览 197回答 2
2回答

红颜莎娜

在片段中添加一个方法:public void setOnClickListener(OnClickListener listener) { mListener = listener;}调用Fragment的方法:mFragment.setOnClickListener(new OnClickListener() { /* YOUR CODE HERE */ });

不负相思意

我认为最好的方法是创建一个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    }});
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java