java试图调用接口方法SharedReferences。在空对象引用上编辑()
我正在尝试编写一种方法,将保存我的应用程序中每辆自行车的维护日志。该方法循环使用每辆自行车,在内部循环使用每个维护日志并保存
由于日志,我可以看到正确的信息。我在每一点上都放了
我的方法的完整代码-
public static void saveLogs() {
for (Bike thisBike : bikes) {
Log.i("Saving Logs", "" + thisBike);
try {
ArrayList<String> dates = new ArrayList<>();
ArrayList<String> logs = new ArrayList<>();
ArrayList<String> costs = new ArrayList<>();
for (maintenanceLogDetails thisLog : thisBike.maintenanceLogs) {
Log.i("Date :", thisLog.date);
dates.add(thisLog.date);
Log.i("Log :", thisLog.log);
logs.add(thisLog.log);
Log.i("Cost :", Double.toString(thisLog.price));
costs.add(Double.toString(thisLog.price));
}
sharedPreferences.edit().putString("dates", ObjectSerializer.serialize(dates)).apply();
sharedPreferences.edit().putString("logs", ObjectSerializer.serialize(logs)).apply();
sharedPreferences.edit().putString("costs", ObjectSerializer.serialize(costs)).apply();
} catch (Exception e) {
e.printStackTrace();
Log.i("Adding details", "Failed attempt");
}
}
}
我在班上名列前茅-
static SharedPreferences sharedPreferences;
我得到的全部错误是-
Attempt to invoke interface method '安卓.content.SharedPreferences$Editor 安卓.content.SharedPreferences.edit()' on a null object reference
在那条线上-
sharedPreferences.edit().putString("dates", ObjectSerializer.serialize(dates)).apply();
让我困惑的是,我几乎是从其他地方复制的代码
我做错了什么
非常感谢
# 1 楼答案
你有没有举例说明呢
https://developer.android.com/reference/android/content/SharedPreferences.html
https://developer.android.com/reference/android/content/Context.html#getSharedPreferences(java.lang.String,%20int)