无法将Builder中的withFragmentManager(android.app.FragmentManager)应用于(androidx.fragment.app.FragmentManager)

时间:2019-07-17 16:39:19

标签: android android-studio-3.0 androidx fragmentmanager

我正在尝试迁移到androidX并在Fragment中创建文件选择器类,这是我的代码:

import androidx.fragment.app.Fragment;
public class FragmentControl extends Fragment {
    private TextView list;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_control, container, false);

        list = view.findViewById(R.id.listTextView);

        final StorageChooser chooser = new StorageChooser.Builder()
                // Specify context of the dialog
                .withActivity(getActivity())
                .withFragmentManager(getFragmentManager())
                .withMemoryBar(true)
                .allowCustomPath(true)
                // Define the mode as the FILE CHOOSER
                .setType(StorageChooser.FILE_PICKER)
                .build();
        chooser.setOnSelectListener(new StorageChooser.OnSelectListener() {
            @Override
            public void onSelect(String path) {
                Toast.makeText(getContext(), "The selected path is : " + path, Toast.LENGTH_SHORT).show();
            }
        });
        chooser.show();

        return view;
    }

FragmentManager was deprecated in API level 28. 我的问题是我如何在Androidx中使用它?以及如何替换getFragmentManager()?

错误是:

  

Builder中的withFragmentManager(android.app.FragmentManager)无法应用于(androidx.fragment.app.FragmentManager)

我如何解决这个问题

1 个答案:

答案 0 :(得分:1)

该方法仅支持旧版groups

...但是3.0版将支持该功能;参见issue tracker