【问题标题】:is converting a string to android.net.Uri using Uri.parse valid?使用 Uri.parse 将字符串转换为 android.net.Uri 是否有效?
【发布时间】:2012-06-21 01:25:06
【问题描述】:

我有一个字符串形式的 uri,我需要从中正确获取路径。因为我有一个函数可以正确地从 android.net.Uri 对象中删除查询参数,所以我想简单地将我的字符串路径转换为 ​​uri。

Uri.parse 是一种将字符串转换为 uri 的有效方法吗?我看过一些例子,但没有一个真正解释这是否是一种有效的方法,或者是否必须进行任何额外的解析。

我已经看过这个链接How to convert a String to an android.net.Uri,但它并没有真正回答我的问题。

感谢您的建议!

【问题讨论】:

  • 你的意思是方法,而不是函数

标签: android string uri


【解决方案1】:

是的,你想使用Uri.parse(String)。例如,

Uri uri = Uri.parse("content://com.example.provider.NotePad/notes/10");

要获取最后一段,您可以使用

// id == "10"
String id = uri.getLastPathSegment();

要获得倒数第二个片段,您可以使用

// notes == "notes"
String notes = uri.getPathSegments().get(0); 

【讨论】:

  • 我猜这是一个愚蠢的问题,但这也能很好地处理 http 请求?
  • 好吧,Uri.parse 解析一个Uri。如果您使用URL 类处理您的HTTP 请求,您将无法使用Uri.parse。请参阅此thread 了解更多信息。
  • 也许我混淆了我的条件。我是新来的。我有一个字符串(如果我将引号内的内容复制并粘贴到浏览器中,它将下载一个文件。所以这个字符串是“http://..blah..”,这就是我所说的 http 请求。)。我想要通过将其转换为 Uri 来删除其查询参数。根据我读过的内容和您的 cmets,似乎 Uri.parse 会起作用,但我不确定。这是否完全澄清了我的原始问题?我的另一个问题是我不明白 Url 和 Uri 之间的区别。 Wiki 对我没有意义 :( 非常感谢您的帮助!
  • @user813375,URL 是 URI,但 URI 不是 URL。 URL 是 URI 的一种特殊化,它定义了给定资源的特定表示的网络位置。 URI 通过位置或名称来标识资源。所以基本上答案是是的,你可以在 URL 的字符串表示上使用Uri.parse(但不能反过来)。
  • @user813375, {all URLs} 是 {all URIs} 的子集
猜你喜欢
  • 2011-04-22
  • 2010-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多