我需要将OnClickListener对象从活动传递到Fragment。 我无法将参数传递给Fragment构造函数,所以我想做类似的事情:
Bundle bundle = new Bundle();
bundle.putCustomObject(new OnClickListener(){...});
答案 0 :(得分:1)
向片段添加方法:
public void setOnClickListener(OnClickListener listener) { mListener = listwner;}
调用片段的方法:
mFragment.setOnClickListener(new OnClickLkstener(....
答案 1 :(得分:0)
我认为最好的方法是使用方法interface
创建一个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
}
});