如何在Fragment中获取Support Fragment Manager对象而无需在Activity中创建静态字段

3

你好,我想在静态片段中调用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();

请帮忙在Fragment中获取支持Fragment管理器对象,而无需在Activity中创建静态字段,或者说这是我所做的正确方法吗?
提前感谢。
1个回答

2

我正在使用支持库来处理片段,所以我必须调用getSupportFragmentManager()。 - N Sharma
它提示说,在支持库中不可用“getFragmentManager”。 - N Sharma
1
它返回的是 v4.app.FragmentManager 的实例,而不是 app.FragmentManager - Blackbelt
然后您正在导入本地Fragment。 - Blackbelt
好的没问题。谢谢 :) 我可以在4分钟内接受答案。 - N Sharma
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接