我需要将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 */ });
不负相思意
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
}
});
添加回答
举报
0/150
提交
取消