我要在 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;
}
}
最佳答案
在frgment的顶部添加这一行
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;
}
}
关于android - 如何将 Activity 转换为 Fragment?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58154468/