【问题标题】:Store Data (Posts) fetched from Wordpress to Android app via JSON to view offline通过 JSON 从 Wordpress 获取的存储数据(帖子)到 Android 应用程序以离线查看
【发布时间】:2023-03-05 14:25:01
【问题描述】:
这是我的第一篇文章。
我有一个从 wordpress 网站获取数据的应用程序。 wordpress 站点实际上是一个新闻站点,应用程序实际上使用 JSON 通过插件连接到 Wordpress 站点。
主要问题是,当没有互联网连接时,应用程序提示:“没有可用的互联网连接!”按照活动中的编码,但我想做以下事情:
- 如果互联网已连接,则照常从网站获取数据
- 如果没有互联网连接,显示以前的数据
问题实际上出现在必须进行保存数据的位置。根据我的研究,有三种方法:
- 共享首选项
- SQL-Lite 数据库
- 文件处理
我想知道哪个是最好的? & 任何源代码都将受到高度赞赏。
如果要保存数据,在没有可用的互联网连接时如何查看数据?
【问题讨论】:
标签:
android
json
wordpress
android-activity
android-fragments
【解决方案1】:
好吧,如果您只有一个(或几个)JSON 文件,您实际上可以将它保存到一个文件中。它应该像这样工作:
如果我有互联网连接,我会从服务器下载 json,然后将其保存到文件中并显示数据。如果我没有它,我会检查文件是否存在(只有在用户第一次开始使用该应用程序时才会丢失),如果存在,我会读取文件并显示 json 数据。您可以通过一个简单的 txt 文件来实现这一点。
以下是一些可帮助您入门的示例代码:
-
将字符串写入文件
public void writeFile(String data) {
字符串文件名 = "myfile.json";
FileOutputStream outputStream = null;
try {
outputStream = openFileOutput(filename, Context.MODE_PRIVATE);
outputStream.write(data.getBytes());
outputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
}
从文件中读取:
公共字符串 readJsonFromFile() {
字符串 json = null;
try {
InputStream is = openFileInput("myfile.json");
int size = is.available();
byte[] buffer = new byte[size];
is.read(buffer);
is.close();
json = new String(buffer, "UTF-8");
} catch (IOException ex) {
ex.printStackTrace();
return null;
}
return json;
}
和 JSONObject 到一个字符串
JSONObject json;
String s;
s=json.toString();
反过来:字符串转json
String s;
JSONObject json= new JSONObject(s);