皂皂丶 2016-04-23 05:45 采纳率: 50%
浏览 2836

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是当中的一个文件上传方法

  • 写回答

4条回答 默认 最新

  • im大钊 2016-04-23 06:06
    关注

    1.在当前类创建一个全局变量:String path,在onActivityResult()方法中把获取的path赋值给全局变量,然后再onClick()方法中获取全局变量的path值,谢谢可以帮助到你。。。

    评论

报告相同问题?

悬赏问题

  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料