java - 错误的第二个参数类型找到 andriod.content.Dialoginterface.onClicklistener, required andrid.content.Context
问题描述
您好,我正在尝试获取要保存的课程列表,因此当应用程序关闭并重新打开时,内容仍然存在。我试图将数组保存到另一个 java 页面,但我不断收到此错误。
//Main Java
builder.setPositiveButton("Add Class", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
String ClassesAdded = ClassET.getText().toString();
adapter.add(ClassesAdded);
ClassET.setText("");
**FileHelper.writeData(classarray, this);//line giving me error**
}
});
//FileHelper
public class FileHelper {
public static final String FILENAME = "listinfo.dat";
public static void writeData(ArrayList<String> classarray, Context context){
try {
FileOutputStream fos = context.openFileOutput(FILENAME, Context.MODE_PRIVATE);
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(classarray);
oos.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
解决方案
该错误是因为this
指的OnClickListener
是该范围内的,但该函数需要一个上下文。如果您的活动(无论生成器调用在哪里)被命名MainActivity
,您需要使用MainActivity.this
那里来使用正确的类实例,如下所示:
FileHelper.writeData(classarray, MainActivity.this);
如果这不是它的名字,显然MainActivity
用你的实际类名替换......
推荐阅读
- typescript - Typescript - 传入多个键值时缩小函数中的 T[K]
- python - 重复 pyspark 数据帧时遇到内存错误
- javascript - 通过 fetch 向 php 发送查询字符串参数不起作用
- magento - Magento2 - 如何在结帐时添加自定义登录/注册步骤
- php - MySQL:用户有超过 'max_user_connections' 的活动连接
- r - R根据部分字符串匹配重命名多个列 - 管道
- reactjs - React Hooks:App.js 状态更改和重新渲染
- c - 应用程序运行时动态链接器如何解析引用?
- python - 为什么我的 Arduino Uno 的 pyserial 给出的值在添加代码后现在卡住了?
- sql-server - 使用 SQL Server 存储过程从 Access 连续表单中打开特定记录