android - 如何将 Activity 转换为 Fragment?
问题描述
我将在片段中实现代码。我应该进行哪些更改?请指导我该怎么做。
我的部分代码:
请求权限代码:
private void requestPermission() {
if
(ActivityCompat.shouldShowRequestPermissionRationale(MainActivity.this,
android.Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
Toast.makeText(MainActivity.this, " Please allow this permission
in App Settings.", Toast.LENGTH_LONG).show();
} else {
ActivityCompat.requestPermissions(MainActivity.this, new String[]
{android.Manifest.permission.WRITE_EXTERNAL_STORAGE},
PERMISSION_REQUEST_CODE);
}
}
检查权限代码:
private boolean checkPermission() {
int result = ContextCompat.checkSelfPermission(MainActivity.this,
android.Manifest.permission.WRITE_EXTERNAL_STORAGE);
if (result == PackageManager.PERMISSION_GRANTED) {
return true;
} else {
return false;
}
}
onRequestPermissionsResult 代码:
@Override
public void onRequestPermissionsResult(int requestCode, String
permissions[], int[] grantResults) {
switch (requestCode) {
case PERMISSION_REQUEST_CODE:
if (grantResults.length > 0 && grantResults[0] ==
PackageManager.PERMISSION_GRANTED) {
Toast.makeText(MainActivity.this, "Permission Granted
Successfully! ", Toast.LENGTH_LONG).show();
} else {
Toast.makeText(MainActivity.this, "Permission Denied :( ",
Toast.LENGTH_LONG).show();
}
break;
}
}
解决方案
在片段顶部添加这一行
public static final int PERMISSION_REQUEST_CODE = 1;
请求权限代码:
private void requestPermission() {
if
(ActivityCompat.shouldShowRequestPermissionRationale(getActivity(),
android.Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
Toast.makeText(getActivity(), " Please allow this permission in App Settings.", Toast.LENGTH_LONG).show();
} else {
ActivityCompat.requestPermissions(getActivity(), new String[]
{android.Manifest.permission.WRITE_EXTERNAL_STORAGE},
PERMISSION_REQUEST_CODE);
}
}
检查权限代码:
private boolean checkPermission() {
int result = ContextCompat.checkSelfPermission(Objects.requireNonNull(getActivity()),
android.Manifest.permission.WRITE_EXTERNAL_STORAGE);
if (result == PackageManager.PERMISSION_GRANTED) {
return true;
} else {
return false;
}
}
onRequestPermissionsResult 代码:
@Override
public void onRequestPermissionsResult(int requestCode, String
permissions[], int[] grantResults) {
switch (requestCode) {
case PERMISSION_REQUEST_CODE:
if (grantResults.length > 0 && grantResults[0] ==
PackageManager.PERMISSION_GRANTED) {
Toast.makeText(getActivity(), "Permission Granted Successfully! ", Toast.LENGTH_LONG).show();
} else {
Toast.makeText(getActivity(), "Permission Denied :( ",
Toast.LENGTH_LONG).show();
}
break;
}
}