我想传递一个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");
这些代码都实现不了。
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"));
你可以把URI作为一个字符串存储
Uri myUri = Uri.parse(extras.getString("imageUri"));
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")这样的方式去获取你传递的序列化对象的
转成string就可以了