Это save()
метод в моем приложении:Использование getSharedPreferences android?
public void save() {
Context context;
SharedPreferences sp = context.getSharedPreferences("gameSave",
Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sp.edit();
editor.putInt("X", player.getX());
editor.putInt("Y", player.getY());
editor.putInt("level", player.getLevel());
editor.putFloat("xp", player.getXp());
editor.commit();
}
Я пытался получить эту работу на некоторое время теперь, но getSharedPreferences (String name, int mode)
не работает для меня. Это не придумано, context.getSharedPreferences()
работает, но это дает NullPointerException
, я думаю, из-за моего контекста. Я пробовал save(Context context){}
как конструктор, но вызов этого из другого метода с контекстом, объявленным внутри этого метода, тоже не работает. Я просмотрел множество примеров, но никто из них не работал на меня. Итак, как я могу получить getSharedPreferences()
?
EDIT: У меня есть класс GameScreen и класс SaveManager. Когда я сохраняю в Gamescreen это код, я использую:
Savemanager savemanager;
savemanager.save();
state = GameState.Running;
И у меня есть класс SaveManager:
package com.package.game;
import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
public class SaveManager extends Activity {
private Player player = GameScreen.getPlayer();
public void save() {
SharedPreferences sp = getSharedPreferences("gameSave",
Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sp.edit();
editor.putInt("X", player.getX());
editor.putInt("Y", player.getY());
editor.putInt("level", player.getLevel());
editor.putFloat("xp", player.getXp());
}
}
И когда я сохраняю в GameScreen мое приложение вылетает, и я получаю эту LogCat:
02-20 01:39:31.979: E/AndroidRuntime(1368): FATAL EXCEPTION: Thread-119
02-20 01:39:31.979: E/AndroidRuntime(1368): java.lang.NullPointerException
02-20 01:39:31.979: E/AndroidRuntime(1368): at com.package.game.GameScreen.updateLevelUp(GameScreen.java:364)
Строка 364 - это линия savemanager.save();
. Я понятия не имею, почему это сбой моего приложения.
* "не работает для меня" * пожалуйста, быть более конкретным. В вашем коде используется контекст «null», но вы упомянули, что это всего лишь * один из ваших проб. –
Это внутри деятельности? – dymmeh
@ A - C, getSharedPreferences() не распознается как метод самостоятельно. Почти в каждом примере я видел, что этот метод сам по себе, а в некоторых примерах это context.getSharedPreferences(), и ни один из них не работает для меня. Как использовать контекст вместо этого? – user2005938