【发布时间】:2019-12-22 01:55:39
【问题描述】:
我卡在 RecyclerView 中的数据中。我在资产文件夹中有一个这样的json:
我想将此数据加载到我的 RecyclerView 和 CardView 中。我已经阅读了很多教程,但没有关于我的案例的教程。 RecyclerView 的每个教程总是从 Internet 加载 JSON。
【问题讨论】:
标签: android json sqlite android-studio android-recyclerview
我卡在 RecyclerView 中的数据中。我在资产文件夹中有一个这样的json:
我想将此数据加载到我的 RecyclerView 和 CardView 中。我已经阅读了很多教程,但没有关于我的案例的教程。 RecyclerView 的每个教程总是从 Internet 加载 JSON。
【问题讨论】:
标签: android json sqlite android-studio android-recyclerview
首先,您要迈出一大步来做所有事情。您很少会在一个地方找到针对特定问题的解决方案。解决问题的最佳方法是将它们分成更小的问题。 例如,如果我们处理您的问题,可以分为以下几个部分:
在这 4 部分中,您应该已经知道第四部分,所以现在您需要寻找前 3 部分。 如果你用谷歌搜索每个部分,你会发现每个部分都有很多答案。
1.读取资产文件夹中的文件
以下函数将为您提供 String 中的文件内容:
private String getFileContentsAsString(Context context, String file)
{
String str = "";
try
{
AssetManager assetManager = context.getAssets();
InputStream in = null;
try {
in = assetManager.open(file);
} catch (IOException e) {
e.printStackTrace();
}
InputStreamReader isr = new InputStreamReader(in);
char [] inputBuffer = new char[100];
int charRead;
while((charRead = isr.read(inputBuffer))>0)
{
String readString = String.copyValueOf(inputBuffer,0,charRead);
str += readString;
}
}
catch(IOException ioe)
{
ioe.printStackTrace();
}
return str;
}
2。将文件数据解析成json
现在您已经将数据作为字符串,您可以将其解析为 JSON:
String fileString = getFileContentsAsString("contents.json");
JSONObject json = new JSONObject(fileString);
3.从 json 中提取数据
获取 json 数组,然后将数据映射到您自己的对象上。
JSONArray itemArray = json.getJSONArray("items");
4.在适配器中使用数据
使用上述步骤中的数据来填充您的适配器。
同样,所有这些步骤的资源都已经可用。
【讨论】: