gpt4 book ai didi

Android:如何使用UriMatcher实现多表、查询参数、Activity的切换?

转载 作者:太空狗 更新时间:2023-10-29 15:17:20 25 4
gpt4 key购买 nike

我想阅读您对如何解决以下问题的想法。以下是我正在处理的应用程序的基本要求

  • 在 map 上显示一个城市的多个位置。
  • 支持多个城市。
  • 在单独的详细信息 View 中显示位置的属性。
  • 每个城市的位置属性不同

我想实现一个灵活的决策逻辑根据 map 所在的位置在城市之间切换。这意味着,我依赖的初始信息是 map 中心。这是理论上的工作流程。

  1. 从 map 上获取当前的中心位置。
  2. 将位置翻译成城市 urluri
  3. 使用 url 通过 HTTP 下载位置。
  4. 将位置存储在本地数据库中。由于位置属性不同,每个城市一张表。
  5. 使用 uri 从内容解析器加载缓存或下载的数据。
  6. 创建叠加项并包含uri 引用唯一ID
  7. 点击位置时打开详细信息 View 。
  8. 详细信息 View 应呈现城市特定的位置属性。
  9. 位置属性再次通过基于传递的 uri 和唯一 ID 的内容解析器加载。

问题:

  1. 我对如何使用 UriMatcher 类切换城市、查询参数(例如 列名)特别感兴趣。
  2. 您会为每个城市准备一个详情 View 吗?或者您是否看到任何实用的解决方案来根据可用的属性信息交换文本字段、标签、..?

为了说明不同的属性,这里有两个示例城市和一个内容提供者。

示例:

public class DatabaseParis {
public static final class Contract {
public static final String COLUMN_LATITUDE = "latitude";
public static final String COLUMN_LONGITUDE = "longitude";
public static final String COLUMN_NAME = "name";
}

还有另一个城市......

public class DatabaseDenver {
public static final class Contract {
public static final String COLUMN_LATITUDE = "lat";
public static final String COLUMN_LONGITUDE = "lon";
public static final String COLUMN_HEIGHT = "height";
public static final String COLUMN_DIAMETER = "diameter";
}

还有一个内容提供者......

public class CustomContentProvider extends ContentProvider {
public static final class Contract {
public static final Uri URI_PARIS = Uri.parse("content://" + AUTHORITY + "/cities/paris");
}

private static final String AUTHORITY = "com.example.cities.locations";
private static final int URI_CODE_PARIS = 0;
private static final UriMatcher URI_MATCHER = new UriMatcher(UriMatcher.NO_MATCH);

static {
URI_MATCHER.addURI(AUTHORITY, "cities/paris", URI_CODE_PARIS);
}

我不确定是使用一个还是多个内容提供者,因为我读到过将所有数据库引用放在一个中可能会出现问题,因为将来应该同步数据。

最佳答案

关于Android:如何使用UriMatcher实现多表、查询参数、Activity的切换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11636997/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com