android - 如何将 Activity 转换为 Fragment?

标签 android android-fragments 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;
    }
}

最佳答案

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

相关文章:

Android 使用 ShelockFragment 而不是 Fragment

java - AlarmReceiver 从未收到来自 Fragment 的调用

android - 返回调用 Activity 时如何关闭浏览器 Activity ?

java - 服务中的 ViewTreeObserver.OnWindowFocusChangeListener

java - 搜索栏移动时显示进度

android - 如何在android中获取当前启动器的包名?

android - fragment 替换时 findViewById 出现 NullPointerException

java - 如何使用 Thread.sleep()?

android - 多个按钮同时启动多个 Activity

java - 单击 ListView 然后转到具有自动数据的其他 Activity