Android onActivityResult返回结果代码=-1

Android onActivityResult返回结果代码=-1,android,android-fragments,onactivityresult,Android,Android Fragments,Onactivityresult,我有这个代码,允许我从SD卡中选择文件并将其上传到服务器,它在活动中运行良好。现在我切换到fragment并使用相同的代码,但它不起作用。所发生的是调用onActivityResult()并弹出选择文件的窗口,当我选择一个文件时,结果代码=-1不会发生任何事情。我不知道怎么解决这个问题 以下是onActivityResult()中的代码: -1是结果\u正常。你有几个日志语句,告诉我们你看到了什么。更好的是,逐步使用调试器并缩小问题的范围。你是说RESULT_OK的默认值是-1?谢谢你救了我的命

我有这个代码,允许我从SD卡中选择文件并将其上传到服务器,它在活动中运行良好。现在我切换到fragment并使用相同的代码,但它不起作用。所发生的是调用onActivityResult()并弹出选择文件的窗口,当我选择一个文件时,结果代码=-1不会发生任何事情。我不知道怎么解决这个问题

以下是onActivityResult()中的代码:


-1是
结果\u正常
。你有几个日志语句,告诉我们你看到了什么。更好的是,逐步使用调试器并缩小问题的范围。你是说RESULT_OK的默认值是-1?谢谢你救了我的命,我不知道RESULT_OK已经存在于Activity中,我的错误是我创建了一个int RESULT_OK,它的值是0。我知道它有点旧,但我希望这仍能减轻一些人的痛苦。我纠正了一个不良行为。我的第一个活动的onActivityResult()在第二个名为finishWithResult(RESULT_OK,null)的活动之后没有返回RESULT_OK(值-1)。我尝试了一下,删除了AndroidManifest中第二个活动的启动模式(我的是singleTask),之后它对我有效。
public void selectFile() {

    Intent intent = new Intent();
    intent.setType("*/*");
    intent.setAction(Intent.ACTION_GET_CONTENT);
    intent.addCategory(Intent.CATEGORY_OPENABLE);
    startActivityForResult(Intent.createChooser(intent, "Select File"), FILE_SELECT_CODE);

}

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    Log.i("Here ","onActivityResult");
    Log.i("Here ","onActivityResult");
    Log.i("resultCode ",resultCode+"");
    if (resultCode == RESULT_OK) {
        Log.i("Here ","onActivityResult");
        if (requestCode == FILE_SELECT_CODE) {
            Log.i("Here ","onActivityResult");
            Uri selectedFileUri = data.getData();
            String uriString = selectedFileUri.toString();
            Log.i("UriString ", uriString);
            File fileToUpload = new File(uriString);


            if (uriString.startsWith("content://")) {
                Cursor cursor = null;
                try {
                    cursor = getActivity().getContentResolver().query(selectedFileUri, null, null, null, null);
                    if (cursor != null && cursor.moveToFirst()) {
                        uploadFileName = cursor.getString(cursor.getColumnIndex(OpenableColumns.DISPLAY_NAME));
                    }
                    uploadFilePath = getPath(selectedFileUri);
                    Log.i("Upload File Path ", uploadFilePath);
                } finally {
                    cursor.close();
                }
            } else if (uriString.startsWith("file://")) {
                uploadFileName = fileToUpload.getName();
                uploadFilePath = uriString.replace("file://", "");
                Log.i("Upload File Path ", uploadFilePath);
            }
        }
    }
}




private String getPath(Uri selectedFileUri) {
    if (selectedFileUri == null)
        return null;
    String[] projection = {MediaStore.Images.Media.DATA};
    Cursor cursor = getActivity().getContentResolver().query(selectedFileUri, projection, null, null, null);
    if (cursor != null) {
        int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
        cursor.moveToFirst();
        return cursor.getString(column_index);
    }
    return selectedFileUri.getPath();
}