java - 如何制作更适合的fragment

标签 java android

    @RequiresApi(api = Build.VERSION_CODES.Q)
    public void onViewCreated() {

        recyclerView = recyclerView.findViewById(R.id.nowplayinglist);
        recyclerView.setLayoutManager(new LinearLayoutManager(getActivity().getApplicationContext()));

        int permissionCheck = ContextCompat.checkSelfPermission(this,
            Manifest.permission.READ_EXTERNAL_STORAGE);

        if (permissionCheck == PackageManager.PERMISSION_GRANTED) {
            setupUI();
        } else {

            ActivityCompat.requestPermissions(this,
                new String[] {
                    Manifest.permission.READ_EXTERNAL_STORAGE
                },
                CALL);
        }
    }

如何更改 Activitycompat 和 contextcompat 以使其更适合 fragment 而不是 Activity?

最佳答案

您需要将 this 关键字替换为 requireActivity(),因为它应该引用 Activity 而不是 Fragment

因此将您的代码更新为:

int permissionCheck = ContextCompat.checkSelfPermission(requireActivity(),
        Manifest.permission.READ_EXTERNAL_STORAGE);

ActivityCompat.requestPermissions(requireActivity(),
         new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},
         CALL);

关于java - 如何制作更适合的fragment,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61327541/

相关文章:

java - 为什么这不是写到我的 JTextArea

java - 未从 AsyncTask/onPostExecute 调用重载 ArrayAdapter 的 getView

android - 带有 Robolectric 的字符串数组的 Resources$NotFoundException

android - 如何将整个屏幕的 fragment 最小化到屏幕底部

java - 如何在 Java 中创建 Type 5 UUID?

Java泛型类型删除

java - JPanel 上的 mouseListener 问题

android - GoogleApiClient : hide GPS icon on status bar when a service is in the background

java - 在 while 循环内使用 post 处理程序

java - java中的成员字段作为方法参数