Android 从方法加载和保存SharedReference
我打算在中使用LoadPreferences和SavePreferences方法。我希望它尽可能灵活,这样我就可以在需要时调用任何“可保存”数据,并在完成对任何类/方法的更改后保存这些数据。当我像任何可返回变量一样设置它时,它会给我一个nullpointerexception。以下是我所拥有的:Android 从方法加载和保存SharedReference,android,methods,sharedpreferences,Android,Methods,Sharedpreferences,我打算在中使用LoadPreferences和SavePreferences方法。我希望它尽可能灵活,这样我就可以在需要时调用任何“可保存”数据,并在完成对任何类/方法的更改后保存这些数据。当我像任何可返回变量一样设置它时,它会给我一个nullpointerexception。以下是我所拥有的: public class MainActivity extends Activity { // Add SharedPreference loader int mPlayerCharisma = S
public class MainActivity extends Activity {
// Add SharedPreference loader
int mPlayerCharisma = SharedPrefLoader("playerCharisma", 0); //I want variable
// playerCharisma if it exists, and to default to int 0 if it does not
int mPlayerBusiness = SharedPrefLoader("playerBusiness", 0);
int mPlayerCombat = SharedPrefLoader("playerCombat", 0);
int mPlayerLevel = SharedPrefLoader("playerLevel", 0);
int mPlayerLocation = SharedPrefLoader("playerLocation", 0);
int mPlayerMoney = SharedPrefLoader("playerMoney", 500);
int mPlayerEnergy = SharedPrefLoader("playerEnergy", 10);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// ...
}
public int SharedPrefLoader(String key, int defValue) {
SharedPreferences sharedPref = this.getSharedPreferences("drudlordmt",
MODE_PRIVATE); //This is where my nullpointerexception points to//
int returnedValue = sharedPref.getInt(key, defValue);
return returnedValue;
}
public void SharedPrefSaver(String key, int value) {
SharedPreferences settings = getSharedPreferences("druglordmt", 0);
SharedPreferences.Editor prefEditor = settings.edit();
prefEditor.putInt(key, value).commit();
}
}
从我的阅读中,我明白我需要以某种方式传递我的上下文,但我想确保我仍然可以做我想做的事情。如有任何建议,将不胜感激
谢谢 移动:
int mPlayerCharisma = SharedPrefLoader("playerCharisma", 0); //I want variable
// playerCharisma if it exists, and to default to int 0 if it does not
int mPlayerBusiness = SharedPrefLoader("playerBusiness", 0);
int mPlayerCombat = SharedPrefLoader("playerCombat", 0);
int mPlayerLevel = SharedPrefLoader("playerLevel", 0);
int mPlayerLocation = SharedPrefLoader("playerLocation", 0);
int mPlayerMoney = SharedPrefLoader("playerMoney", 500);
int mPlayerEnergy = SharedPrefLoader("playerEnergy", 10);
(以及对onCreate()
中的SharedPrefLoader()
的所有其他调用)。见: