即使删除上下文或添加上下文,错误仍然会出现
public class fileHelper {
public static final String FILENAME = "listinfo.dat";
public static void writeData(ArrayList<String> items, View.OnClickListener context){
try {
FileOutputStream fos = context.openFileOutput(FILENAME, Context.MODE_PRIVATE);
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(items);
oos.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
我已经尝试删除上下文
答案 0 :(得分:0)
View.OnClickListener不是上下文(也不是您需要的上下文)。您需要在通话活动中使用上下文
public static void writeData(ArrayList<String> items, Context context){
try {
FileOutputStream fos = context.openFileOutput(FILENAME, Context.MODE_PRIVATE);
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(items);
oos.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
答案 1 :(得分:0)
public static void writeData(ArrayList<String> items, View.OnClickListener context)
尽管您定义了一个称为“上下文”的参数。它不是Android Context
。
Context
是一个对象,例如Activity
或Application
的实例,因此您需要传递其中一个(实例,而不是对类本身的引用)到需要使用此代码的代码。
粗略地说,Activity
或Application
的实例将是此类适当方法内的代码“ this”。
答案 2 :(得分:0)
问题在于您没有将上下文传递给方法。
View.OnClickListener context
这不是上下文。是onClickListener
。
您需要传递Context
,然后像这样使用它:
public static void writeData(ArrayList<String> items, Context context){
try {
FileOutputStream fos = context.openFileOutput(FILENAME, Context.MODE_PRIVATE);
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(items);
oos.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}