2014-02-08 1 views
0

내 의도는 LoadPreferences 및 SavePreferences 메서드입니다. 가능한 한 유연하게 사용하여 필요할 때마다 호출 할 수있는 "저장 가능한"데이터를 요청할 수 있으며 모든 클래스/메서드를 변경하면 저장됩니다. 리턴 할 수있는 변수와 같이 설정하면 널 포인트 인식을 제공합니다. 여기에 내가 가진 무엇입니까 : 내 독서에서메서드에서 SharedPreferences로드 및 저장

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(); 
    } 
} 

나는 어떻게 든 내 컨텍스트를 통과해야 이해하지만 난 아직도 내가하려는거야 무엇을 할 수 있는지 확인하려면. 어떤 제안이라도 대단히 감사하겠습니다.

감사합니다.

답변

0

이동 :

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); 

(및 SharedPrefLoader() 모든 다른 통화) onCreate() 내부. 참조 : Why getApplicationContext() in constructor of Activity throws null pointer exception?

관련 문제