yongyong_21
2012-10-09 07:26
采纳率: 100%
浏览 9.0k

如何给一个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 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 2012-10-09 09:31

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

    Uri myUri = Uri.parse(extras.getString("imageUri"));
    
    打赏 评论
  • 零九 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 2018-12-13 09:43

    转成string就可以了

    打赏 评论

相关推荐 更多相似问题