android– 多个表的内容提供程序

android– 多个表的内容提供程序,第1张

概述我是Android新手,我正在为5个表实现内容提供程序.我的问题是:我是否应该为每个表或一个表中的多个表提供ContentProvider内容提供商?由于ContentProvider具有单个insert,update,query,delete方法.如何在我的应用程序中只包含一个ContentProvider?我搜索过并且在大多数示例中,我只

我是Android新手,我正在为5个表实现内容提供程序.
我的问题是:
我是否应该为每个表或一个表中的多个表提供Content ProvIDer
内容提供商?由于Content ProvIDer具有单个insert,update,query,delete方法.

如何在我的应用程序中只包含一个Content ProvIDer?我搜索过并且在大多数示例中,我只找到一个表格应用程序.

我在哪里必须使用切换条件来支持具有相同Content ProvIDer的多个表?

请给我一些想法.

解决方法:

您可以使用URI参数:

List<String> androID.net.Uri.getPathSegments()

如果您的URI是,例如:

content://com.mypackage.MyContentProvIDer/Mytable

Mytable将位于getPathSegments();返回的列表中.

然后,您必须在URI中指定您的表,并在提供程序中的insert,update,query,delete方法中根据URI参数构建查询.

为了避免在URI上进行测试,您可以向您提供一个名为gettablename()的Abstract方法,它会将您的tablename作为String返回.

然后将您的提供程序扩展到5个类table1ProvIDer,table2ProvIDer等并实现方法

Class abstract  MyProvIDer extends ContentProvIDer{public abstract String gettablename(); @OverrIDe  public Cursor query(Uri uri, String[] projection, String selection,      String[] selectionArgs, String sortOrder) {   ///...    // Set the table    queryBuilder.settables(gettablename());    //...    return cursor;  }}class table1ProvIDer extend MyProvIDer{public String gettablename(){   return "table1";}

然后实例化table1ProvIDer而不是抽象提供程序.

总结

以上是内存溢出为你收集整理的android – 多个表的内容提供程序全部内容,希望文章能够帮你解决android – 多个表的内容提供程序所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1116992.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存