我是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 – 多个表的内容提供程序所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)