【发布时间】:2016-07-06 11:48:49
【问题描述】:
抱歉,如果我在这里没有提供足够的信息,我是 android/java 的新手,并且正在通过结合各种示例项目的元素来学习。
我有一个工作的VerticalGridFragment 页面用于 Android TV 项目(使用leaback),它在列和行中加载专辑封面和详细信息。它大量借鉴了googlesamples example on github。
使用以下格式的测试music_database_proto.json 文件:
{
"cards": [
{
"type": "GRID_SQUARE",
"title": "Around the World in a Day",
"artist": "Prince and the Revolution",
"description": "Prince and the Revolution",
"groupType": 0,
"tagID": 0,
"localImageResource": "food_01"
}
}
然后我可以使用 createRows() 函数(来自同一个示例项目)加载它:
PresenterSelector cardPresenterSelector = new CardPresenterSelector(getActivity());
mAdapter = new ArrayObjectAdapter(cardPresenterSelector);
String json = Utils.inputStreamToString(getResources().
openRawResource(R.raw.music_database_proto));
CardRow row = new Gson().fromJson(json, CardRow.class);
mAdapter.addAll(0, row.getCards());
在示例中使用CardRow.class、Card.class的示例项目类及其各种支持类。
我已经实现了一个成功启动的SQLite 数据库,我可以在Android Studio 的Logs 中调用各种结果。我不知道从哪里开始插入数据库中的结果为Cards,我可以加载到VerticalGridFragment 中,替换json 文件的功能?
我认为这就像从数据库结果创建 List<Card> 并使用 mAdapter.addAll 将其添加到 mAdapter 一样简单。但是,我在使用迭代代码实现 List 的 Card 对象时运气不佳。无奈之下,我想我应该将数据库结果转换为json 字符串并将它们输入到我上面显示的现有代码中?
任何帮助表示赞赏。该数据库与 json 变量一样基本,可以根据需要进行调整。
【问题讨论】:
-
您正在寻找一种简单的解决方案来实现离线存储机制,将所有 JSON 类存储到您的数据库中,对吧?
标签: android json sqlite android-tv leanback