使用底部的界面

时间:2017-12-13 12:08:51

标签: java android interface fragment bottom-sheet

我想在我的片段和底页中添加一个界面,当底页完成一个动作(比如选择一个按钮)时,它会在我的后台片段中调用但是当我调用interface时它会返回null并且在我的动作完成时不会调用!

这是我填写界面的代码,但条件从未调用过:

router-outlet

我的代码:

if(responseListener != null){
  responseListener.onData( 200,message);
}

所以我不能在另一个片段中调用接口。 (因为它从不打电话)

1 个答案:

答案 0 :(得分:1)

您应该在BottomSheet的 onAttach 方法中初始化您的界面实例:

@Override 
public void onAttach(Context context) {
    super.onAttach(context);
    try {
        responseListener = (ResponseListener) getParentFragment();
    } catch(Exception e) {
       //handle exception
    }
}

请注意,如果要从片段显示BottomSheet对话框并在片段中获取回调,则需要使用 getChildFragmentManager() 而不是< strong> getFragmentManager() 调用。

如果您使用 getFragmentManager() 进行展示,则会在 onAttach 方法中获得强制转换异常。

查看this链接,了解ChildFragmentManager和FragmentManager之间的区别。