gpt4 book ai didi

android - 多个数据库/ContentProvider 的 ContentProvider

转载 作者:行者123 更新时间:2023-11-29 21:26:48 24 4
gpt4 key购买 nike

谁能告诉我如何创建一个 ContentProvider,它可以查询多个数据库/ContentProvider 以获得 SearchView 提供的搜索建议。

最佳答案

使用 ContentProvider,您可以使用如下所示的 ContentUrl 查询数据

content://<authority>/<data_type>/<id>

authority 是内容提供者名称,例如联系人或自定义联系人将是 com.xxxxx.yyy。

data_typeid 用于指定您需要提供的数据,如果需要,还指定键的特定值。

因此,如果您要构建自定义内容提供程序,则需要解析作为查询函数中的参数获取的内容 uri,并决定需要将哪些数据作为 Cursor 返回。 UriMatcher 类是这种情况下非常好的选择。这是一个例子

static final String URL = "content://com.mycompany.myapp/students";
static final Uri CONTENT_URI = Uri.parse(URL);

static final UriMatcher uriMatcher;
static{
uriMatcher = new UriMatcher(UriMatcher.NO_MATCH);
uriMatcher.addURI("com.mycompany.myapp", "students", 1);
uriMatcher.addURI("com.mycompany.myapp", "students/#", 2);
}

然后在你的查询函数中,你会得到这样的东西:

switch (uriMatcher.match(uri)) {
case 1:
// we are querying for all students
// return a cursor all students e.g. "SELECT * FROM students"
break;
case 2:
// we are querying for all students
// return a cursor for the student matching the given id (the last portion of uri)
// e.g. "SELECT * FROM students WHERE _id = n"
break;
default:
throw new IllegalArgumentException("Unknown URI " + uri);
}

我希望这能回答您的问题并引导您走上正确的道路。

你可以在这里看到一篇很好的文章,里面有关于如何使用它们的完整示例 http://www.tutorialspoint.com/android/android_content_providers.htm

关于android - 多个数据库/ContentProvider 的 ContentProvider,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20158596/

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