uri.Segments 异常
时间: 2023-08-14 11:02:50 浏览: 65
如果您使用 `uri.Segments` 异常,则可能是因为 Uri 的格式不正确。在 Prism 库中,导航到页面的 Uri 应该以“/”开头,并且应该只包含一个路径段。如果您的 Uri 包含多个路径段,则可以使用 `uri.Segments.Last()` 来获取最后一个路径段,即页面名称。
以下是一个示例 Uri:
```
/navigation/Page1
```
在上面的示例 Uri 中,"/navigation/" 是应用程序的基础路径,"Page1" 是导航到的页面名称。您可以使用以下代码来获取页面名称:
```
string pageName = uri.Segments.Last();
```
如果您的 Uri 不以“/”开头,则需要手动添加它。如果您的 Uri 包含查询参数,则可以使用 `uri.GetComponents(UriComponents.Path, UriFormat.Unescaped)` 来获取路径部分,该方法会自动将查询参数从路径中删除。
```
string path = uri.GetComponents(UriComponents.Path, UriFormat.Unescaped);
string pageName = path.Split('/').Last();
```
如果您的 Uri 不是基于 Prism 库的导航,则可能需要使用不同的方法来获取页面名称。
相关问题
Uri.parse
`Uri.parse` 是 Android 中用于将字符串转换为 Uri 对象的静态方法。它的作用是将字符串解析为 Uri 对象,以便在应用程序中进行处理。例如,我们可以使用它将一个文件路径字符串转换为一个 Uri 对象,以在 ImageView 中显示图片:
```java
String imagePath = "/sdcard/image.jpg";
Uri uri = Uri.parse("file://" + imagePath);
imageView.setImageURI(uri);
```
在上面的例子中,我们首先定义了一个文件路径字符串 `imagePath`,然后使用 `Uri.parse` 方法将其转换为一个 Uri 对象 `uri`,并将该 Uri 对象设置为 ImageView 的图片。需要注意的是,我们在文件路径字符串前面添加了 "file://" 前缀,以便 Uri.parse 方法能够正确解析该字符串为一个文件 Uri。
uri.getpath
`uri.getPath()` 是用于从给定的 URI 字符串中获取路径部分的方法。它返回一个字符串,该字符串包含 URI 的路径部分。例如,如果 URI 为 "https://www.example.com/path/to/resource.html",则 `uri.getPath()` 返回 "/path/to/resource.html"。请注意,路径部分不包括主机名和端口号。