如何在片段中获取支持片段管理器对象而不在活动中创建静态字段

时间:2014-11-14 16:38:24

标签: android android-fragments

您好我想在静态片段中调用getSupportFragmentManager,但它给了我错误。

  

非静态方法getSupportFragmentManager不能在静态类中引用。

public static class DemoFragment extends Fragment {

    public DemoFragment() {
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.fragment, container, false);

        return rootView;
    }

    @OnClick(R.id.button)
    public void clickButton() {
        DialogFragment newFragment = new DatePickerFragment(new DatePickerListener() {
            @Override
            public void onDateSet(DatePicker view, int year, int month, int day) {

            }
        });
        newFragment.show(getSupportFragmentManager(), "datePicker"); // HERE ERROR
    }
}

为了解决这个问题,我在

这样的活动中创建了一个静态变量
private static FragmentManager fragmentManager;

并将其分配为onCreate,如

fragmentManager = getSupportFragmentManager();

请帮助如何在片段中获取支持片段管理器对象而不在活动中创建静态字段,或者这是我做的正确方法。

提前致谢。

1 个答案:

答案 0 :(得分:2)

在片段中你可以use getFragmentManager()