问题描述
- 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是当中的一个文件上传方法
解决方案
1.在当前类创建一个全局变量:String path,在onActivityResult()方法中把获取的path赋值给全局变量,然后再onClick()方法中获取全局变量的path值,谢谢可以帮助到你。。。
解决方案二:
强烈建议你买郭霖的第一行Android代码看一下,这种问题太基础了,还是静下心来多看书。
解决方案三:
Activity中得到新打开Activity关闭后返回的数据(onActivityResult和setResult方法的使用)
解决方案四:
赵林的答案可以,但是我想补充一点,加一个handler,
1. 首先设置按钮不可点击(或者做判断),因为你的图片路径是返回之后才有的,
2. 然后在handler的方法中设置按钮为可用,并且给路径变量赋值
解决方案五:
可以直接调用的,你再试试
时间: 2024-09-20 00:30:04