首页 > 解决方案 > 如何将 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;
    }
}

标签: androidandroid-fragmentsandroid-activity

解决方案


在片段顶部添加这一行

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;
        }
    }

推荐阅读