u013934865
皂皂丶
采纳率50%
2016-04-23 05:45 阅读 2.8k

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条回答 默认 最新

  • u010539561 im大钊 2016-04-23 06:06

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

    点赞 1 评论 复制链接分享
  • LuAndroidHan LuAndroidHan 2016-04-23 06:09

    强烈建议你买郭霖的第一行Android代码看一下,这种问题太基础了,还是静下心来多看书。

    点赞 评论 复制链接分享
  • f704084109 DragonFangQy 2016-04-23 08:03

    赵林的答案可以,但是我想补充一点,加一个handler,
    1. 首先设置按钮不可点击(或者做判断),因为你的图片路径是返回之后才有的,
    2. 然后在handler的方法中设置按钮为可用,并且给路径变量赋值

    点赞 评论 复制链接分享
  • dongfeng9ge 东风玖哥 2016-04-30 08:12

    可以直接调用的,你再试试

    点赞 评论 复制链接分享

相关推荐