我有一个应用程序,它将获取用户的分数,将其保存到当前的分数列表中,然后显示所有分数。saveScores 方法在 HighScores 类中,但将从用户输入其姓名的 Activity 中调用。
因为该方法位于 java 类而不是 Android 活动中,所以我无法让代码正常工作。我尝试了两个选项,每个选项都给出了不同的错误:
选项1:
FileOutputStream fileout=openFileOutput("highScores.txt", Context.MODE_PRIVATE);
//ERROR: The method openFileOutput(String, int) is undefined for the type HighScore.
选项 2:
FileOutputStream fileout=openFileOutput("highScores.txt", MODE_PRIVATE);
//ERROR: MODE_PRIVATE cannot be resolved to a variable
选项 1 正是我使用的教程中的代码,它在我运行它时有效,所以应该是正确的选项。但由于 java 类中没有上下文,我认为这就是它遇到问题的地方。除了将整个方法移到活动中之外,还有其他方法可以使这项工作吗?
对于它的价值,这是整个 saveFile 方法:
public void saveScores(Context context, ArrayList<Score> scores){
// save to file
try{
String allScores ="";
FileOutputStream fileout=openFileOutput("highScores.txt", Context.MODE_PRIVATE); // The line in question.
OutputStreamWriter outputWriter=new OutputStreamWriter(fileout);
for (int i=0; i<scores.size(); i++)
allScores += ((i+1)+". "+scores.get(i).toString()+"\n");
outputWriter.write(allScores);
outputWriter.close();
}catch(FileNotFoundException e){
System.out.println("SaveScores ERROR: File Not Found.");
}catch(IOException e){
System.out.println("SaveScores ERROR: See Stack Trace below.");
e.printStackTrace();
}