我有两个数据需要从外部应用程序访问并存储.根据文档,ContentProviders是唯一可能的方式,但它也提到了外部存储. ContentProviders实现类似数据库的“接口”,对于两个数据,使用数据库是非常不必要的.我宁愿将它们保存到文件中,但是通过实现抽象方法使用ContentProvider是有问题的,因为这些方法被构造为数据库查询.
我知道没有任何指定ContentProviders必须使用下面的数据库来存储数据,但有没有其他方法来存储必须共享到文件系统的最小数据量?
解决方法
我只是使用MatrixCursor来解决这个确切的问题.看看吧.
编辑:对不起,当我回答时,我刚刚扫描了问题. ContentProvider是应用程序共享数据的唯一方式.应用程序中的活动可以使用SharedPreferences来处理较小的数据,并添加持久性.
编辑v2:这是我用来为我的ContentProvider的查询功能填充MatrixCursor的函数.我正在使用我创建的预定义VIEW,它返回一组不同的值,这会设置一个带有_ids的游标,我可以传递给我的ExpandableListView.
private Cursor getFactions() { MatrixCursor mc = new MatrixCursor(Model.Faction.PROJECTION); sqliteDatabase db = dbHelper.getReadableDatabase(); Cursor c = db.query(MODELFACTION_TABLE_NAME,new String[] { Model.Faction.FACTION },null,Model.Faction.FACTION + " ASC"); c.movetoFirst(); do { mc.addRow(new Object[] { c.getPosition(),c.getString(c.getColumnIndex(Model.Faction.FACTION))}); } while (c.movetoNext() && ! c.isAfterLast()); c.close(); db.close(); return mc; }
原文地址:https://www.jb51.cc/android/317907.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。