私のアプリで各自転車のメンテナンスログを保存するメソッドを記述しようとしています。このメソッドは、各メンテナンスログを内部的に循環させて保存する各バイクを繰り返し実行します。ヌルオブジェクト参照でインターフェイスメソッドsharedPreferences.edit()を呼び出そうとしました
各ポイントにLog.iが配置されているため、正しい情報が表示されます。
私の方法のための完全なコード - 私が持っているクラスの最上部に
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 'android.content.SharedPreferences$Editor android.content.SharedPreferences.edit()' on a null object reference
その行は -
sharedPreferences.edit().putString("dates", ObjectSerializer.serialize(dates)).apply();
私は混乱していますが、私はかなりうまく動作するコードをコピーしました。
私は間違っていますか?
多くの感謝!
どうやら私はしませんでした!それを逃した、ありがとう! – AndyCr15
誰かがなぜこれを投票するのか理解してくれる人もいますか?私が愚かな間違いをしているにもかかわらず、確かに質問そのものは適切に設定され、正しい方法で行われていますか?それはここにかなり有毒な場所と思われる... :-( – AndyCr15
私のような初心者は投票に落ちるべきではありません@ AndyCr15 – Kaushal28