我正在尝试向Intent传递一个URI对象,以便在另一个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"); // I know thats wrong ...
型
9条答案
按热度按时间hmmo2u0o1#
你可以把uri存储为字符串
字符串
然后像这样把字符串转换回uri
型
oewdyzsn2#
Uri
类实现了Parcelable
,因此您可以直接从Intent
中添加和提取它字符串
您可以对任何实现
Parcelable
的对象使用相同的方法,如果需要,您可以在自己的对象上实现Parcelable
。neekobn83#
在Intent中,您可以直接放置Uri。您不需要将Uri转换为字符串,然后再转换回Uri。
看看这个简单的方法。
字符串
为了让乌里从意图中恢复过来:
型
b5buobof4#
字符串
然后你可以像这样获取它:
型
yvt65v4c5#
下面是我如何使用它;我的CameraActivityActivity类中的这个按钮,我在其中调用camera
字符串
我的另一个DisplayVideo活动类
型
igsr9ssn6#
如果你想使用标准的额外数据字段,你可以这样做:
字符串
Intent的文档说:
型
你不必使用内置的标准名称,但这可能是一个很好的做法,更可重用。查看开发人员文档,了解所有内置的标准额外数据字段的列表。
2nc8po8w7#
Uri.parse(extras.getString("imageUri"))
导致错误:字符串
所以我改成了以下内容:
型
和
型
这就解决了问题。
jum4pzuy8#
:Kotlin方式:
活动:
字符串
接收方活动:
型
dgenwo3n9#
你可以这样做。imageuri可以转换成字符串这样。
Intent.putExtra(“imageUri”,imageUri.toString());