Java 如何将OnClickListener从活动传递到片段

Java 如何将OnClickListener从活动传递到片段,java,android,android-fragments,Java,Android,Android Fragments,我需要将OnClickListener对象从活动传递到片段。 我无法将参数传递给片段构造函数,因此我想执行以下操作: Bundle bundle = new Bundle(); bundle.putCustomObject(new OnClickListener(){...}); 将方法添加到片段: public void setOnClickListener(OnClickListener listener) { mListener = listener;} 调用片段的方法: mFrag

我需要将OnClickListener对象从活动传递到片段。 我无法将参数传递给片段构造函数,因此我想执行以下操作:

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

将方法添加到片段:

public void setOnClickListener(OnClickListener listener) { mListener = listener;} 
调用片段的方法:

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

将方法添加到片段:

public void setOnClickListener(OnClickListener listener) { mListener = listener;} 
调用片段的方法:

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

我认为最好的方法是使用方法
onClick()
创建
接口
,并将
活动
的回调设置为
片段

接口

public interface FragmentClickListener
{
    void onClick();
}
在Fragment类中创建变量和方法以接收FragmentClickListener:

private FragmentClickListener listener;

public void setOnClickListener(FragmentClickListener listener)
{
    this.listener = listener;
}
然后,在片段类的某些方法中,您可以如下方式调用侦听器:

void someMethod()
{
    if(listener != null) {
        listener.onClick();
    }
}
fragment.setOnClickListener(new FragmentClickListener(){
    @Override
    public void onClick() {
            //do something here
    }
});
在活动类中,按如下方式定义回调:

void someMethod()
{
    if(listener != null) {
        listener.onClick();
    }
}
fragment.setOnClickListener(new FragmentClickListener(){
    @Override
    public void onClick() {
            //do something here
    }
});

我认为最好的方法是使用方法
onClick()
创建
接口
,并将
活动
的回调设置为
片段

接口

public interface FragmentClickListener
{
    void onClick();
}
在Fragment类中创建变量和方法以接收FragmentClickListener:

private FragmentClickListener listener;

public void setOnClickListener(FragmentClickListener listener)
{
    this.listener = listener;
}
然后,在片段类的某些方法中,您可以如下方式调用侦听器:

void someMethod()
{
    if(listener != null) {
        listener.onClick();
    }
}
fragment.setOnClickListener(new FragmentClickListener(){
    @Override
    public void onClick() {
            //do something here
    }
});
在活动类中,按如下方式定义回调:

void someMethod()
{
    if(listener != null) {
        listener.onClick();
    }
}
fragment.setOnClickListener(new FragmentClickListener(){
    @Override
    public void onClick() {
            //do something here
    }
});