开发者社区> 问答> 正文

onActivityResult中的数据怎么拿出来然后在Activity中使用

我想把里onActivityResult中文件的地址传出来给按钮点击响应里面的文件上传用但是发现不行,求大神解答一下

 Btu_shangchuan.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
                intent.setType("*/*");//设置类型
                intent.addCategory(Intent.CATEGORY_OPENABLE);
                startActivityForResult(intent, 1);
                String path = intent.getStringExtra("path");
                final BmobFile bmobFile = new BmobFile(new File(path));
                bmobFile.uploadblock(ZuoYeShangJiao.this, new UploadFileListener() {
                    @Override
                    public void onSuccess() {
                        MyUser user = BmobUser.getCurrentUser(ZuoYeShangJiao.this, MyUser.class);
                        Homework homework = new Homework();
                        homework.setStu_Number(user.getUsername());
                        homework.setHw_class(user.getStu_class());
                        homework.setHw_course(course);
                        homework.setHomework(bmobFile);
                        homework.save(ZuoYeShangJiao.this, new SaveListener() {
                            @Override
                            public void onSuccess() {
                                Toast.makeText(ZuoYeShangJiao.this, "作业上传成功", Toast.LENGTH_SHORT).show();
                            }

                            @Override
                            public void onFailure(int i, String s) {
                                Toast.makeText(ZuoYeShangJiao.this,"作业上传失败",Toast.LENGTH_SHORT).show();

                            }
                        });
                    }

                    @Override
                    public void onFailure(int i, String s) {
                        Toast.makeText(ZuoYeShangJiao.this,"上传失败",Toast.LENGTH_SHORT).show();

                    }
                });
            }
        });
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (resultCode == Activity.RESULT_OK) {
            Uri uri = data.getData();
            /*String[] proj = {MediaStore.Images.Media.DATA};
            Cursor actualimagecursor = managedQuery(uri, proj, null, null, null);
            int actual_image_column_index = actualimagecursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
            actualimagecursor.moveToFirst();
            String img_path = actualimagecursor.getString(actual_image_column_index);
            File file = new File(img_path);*/
            String path = uri.toString();
            data.putExtra("path",path);
        }

        super.onActivityResult(requestCode, resultCode, data);
    }

注:Bmob类是一个云数据库的uploadbock是当中的一个文件上传方法

展开
收起
爵霸 2016-03-03 15:24:22 2630 0
1 条回答
写回答
取消 提交回答
  • 1.在当前类创建一个全局变量:String path,在onActivityResult()方法中把获取的path赋值给全局变量,然后再onClick()方法中获取全局变量的path值,谢谢可以帮助到你。。。

    2019-07-17 18:51:30
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载