我有两个片段Parent和child,现在我试图使用回调从childFragment到parentFragment获得一些值。
这是我到目前为止所尝试的:
添加子片段
activity.getSupportFragmentManager()
.beginTransaction()
.replace(R.id.frame_layout, fragment).addToBackStack(null)
.commit();
现在,我希望获得对childFragment的响应。我希望对childFragment进行buttonClick。
示例:
nearestCenter.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (getFragmentManager() != null) {
getFragmentManager().popBackStack();
}
}
});
PS 我知道如何使用Activity进行分段,但是有什么方法可以使回调从分段到碎片。
答案 0 :(得分:0)
您可以使用以下代码。当然,您应该注意类强制转换异常和空指针异常。
private void callParentFragmentMethod(){
ParentFragment f = (ParentFragment) getParentFragment();
f.someMethod();
}
答案 1 :(得分:-1)
您可以使用界面进行交互:
public interface MyInterface{
void sendMessageToParent(Parameters parameter);
}
现在像这样在您的父片段上实现它-
public class ParentFragment implements MyInterface{
public static Myinterface myinterface;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
super.onCreateView(inflater, container, savedInstanceState);
// Register your interface like this.
myinterface = this;
return view;
}
@Override
public void sendMessage(Parameters Parameters){
}
}
现在来自儿童活动的称呼如下:-
if(ParentFragment.myinterface!=null){
ParentFragment.myinterface.sendMessageToParent(parameters);
}
可以。并确保在父级的onDestroy中将其分配为null,如下所示:-
myinterface = null;
希望这会有所帮助。