Android:如何使用UriMatcher切换多个表、查询参数和活动?
我想了解一下你对如何解决以下问题的看法。以下是我正在处理的应用程序的基本要求Android:如何使用UriMatcher切换多个表、查询参数和活动?,android,uri,multiple-tables,android-contentresolver,Android,Uri,Multiple Tables,Android Contentresolver,我想了解一下你对如何解决以下问题的看法。以下是我正在处理的应用程序的基本要求 在地图上显示一个城市的多个位置 支持多个城市 在单独的详细信息视图上显示位置的属性 每个城市的位置属性不同 我想实现一个灵活的决策逻辑,根据地图所在的位置在城市之间切换。也就是说,我所依赖的初始信息是地图中心。这是理论工作流程 从地图中获取当前中心位置 将位置转换为城市url和uri 使用url通过HTTP下载位置 将位置存储在本地数据库中。每个城市一个表,因为位置属性不同 使用uri从内容解析器加载缓存或下载的数
- 在地图上显示一个城市的多个位置
- 支持多个城市
- 在单独的详细信息视图上显示位置的属性
- 每个城市的位置属性不同
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";
}
UriMatcher
类切换城市、查询列名等参数李>
为了说明不同的属性,这里有两个示例城市和一个内容提供商 示例:
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);
}
我不确定是否使用one或多个内容提供商,因为我了解到,在将来同步数据时,将所有数据库引用放入一个可能会出现问题。我想处理这种情况的人应该使用以下信息源