【发布时间】:2013-11-20 08:34:22
【问题描述】:
我有一个具有SplashScreen 和MainActivity 的应用程序。在MainActivity 中,FrameLayout 被片段替换。但这只是一个基本的理解,我认为我的问题并不需要它。
在我的 SplashScreen 中,我正在检查内部存储中是否存在文件。如果是这样,它就会被读出。如果没有,它会从互联网上下载。到目前为止,一切都很好。现在,当用户在 MainActivity 中时,他有不同的选择。根据该选项,将打开一个片段并显示数据。这个数据不一样。所以现在我想在 SplashScreen 中做同样的事情。检查文件是否存在。如果是,请阅读,否则请从 Internet 下载。我遇到的问题是,似乎无法通过 Fragments 进行读写。对吗?
片段为 AsyncTask 加注星标,应该在那里进行下载。
这是我在片段中用于写入文件的代码
private void writeToFile(String data, String filename) {
try {
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(openFileOutput( filename, MODE_PRIVATE));
outputStreamWriter.write(data);
outputStreamWriter.close();
}
catch (IOException e) {
Log.e("Exception", "File write failed: " + e.toString());
}
}
但我遇到的问题是 MODE_PRIVATE - 我遇到的错误是 MODE_PRIVATE cannot be resolved to a variable 。如何在片段中将模式设置为私有?
然后,当我想读取文件时,它会像这样在 SplashScreen 中工作
inputStream = openFileInput ( filepath )
但是在片段中我得到了错误
The method openFileInput(String) is undefined for the type WeekFragment.MainAsyncTask
我究竟如何在片段中写入和读取文件?
【问题讨论】:
标签: java android android-fragments android-asynctask