你好,我想在静态片段中调用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中创建静态字段,或者说这是我所做的正确方法吗?
提前感谢。
v4.app.FragmentManager
的实例,而不是app.FragmentManager
。 - Blackbelt