yongyong_21
yongyong_21
采纳率100%
2012-10-09 07:26 阅读 8.9k

如何给一个Intent传递URI?

我想传递一个URI-Object到一个intent,然后想在另外一个activity中使用URI。
如何传递这个URI?

private Uri imageUri;
....
Intent intent = new Intent(this, GoogleActivity.class);
intent.putExtra("imageUri", imageUri);
startActivity(intent);
this.finish();

我如何在其他activity中使用现在这个URI?

 imageUri = extras.getString("imageUri"); 

这些代码都实现不了。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

4条回答 默认 最新

  • 已采纳
    hcg_21 hcg_21 2012-10-09 09:13
    private Uri imageUri;
    ....
    Intent intent = new Intent(this, GoogleActivity.class);
    intent.putExtra("imageUri", imageUri.toString());
    startActivity(intent);
    this.finish();
    

    然后你再用一下方法获取:

    imageUri = Uri.parse(extras.getString("imageUri"));
    
    点赞 评论 复制链接分享
  • znl_12 znl_12 2012-10-09 09:31

    你可以把URI作为一个字符串存储

    Uri myUri = Uri.parse(extras.getString("imageUri"));
    
    点赞 2 评论 复制链接分享
  • t7g367 零九 2018-11-30 03:49

    intent 之间的传递的八个类型(int string...)是可以直接传递的,因为这些的类里面都是实现了序列化接口的,如果需要传递其他的类型,是需要序列化对象的,不知道你用的是不是系统的Uri,如果你传递的Uri是实现了
    Parcelable或者Serializable接口的,anroid intent里面最好还是实现Parcelable接口,就Parcelable为例传递的时候需要调用 如下方法:
    Bundle mBundle = new Bundle();
    mBundle.putParcelable("key", Uri对象);
    intent.putExtras(mBundle);
    传递过去的界面需要 this.getIntent().getParcelableExtra("key")这样的方式去获取你传递的序列化对象的

    点赞 评论 复制链接分享
  • weixin_44088657 weixin_44088657 2018-12-13 09:43

    转成string就可以了

    点赞 评论 复制链接分享

相关推荐