@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/