2013-04-24 2 views
26

나는 안드로이드 응용 프로그램에서 정수를 저장하는 마지막 시간 동안 노력하고 있습니다. SharedPreferences를 사용하여이 작업을 수행 할 수 있음을 읽었습니다. 그러나 나는 그렇게 혼란스러워하는 이유를 이해하지 못한다.안드로이드 SharedPreferences, 간단한 int 변수를 저장하는 방법

어떻게하면 int 변수를 간단하게 저장할 수 있습니까? 그런 다음 응용 프로그램을 다시 실행하면 어떻게이 변수와 다시 상호 작용할 수 있습니까?

SharedPreferences sp = getSharedPreferences("your_prefs", Activity.MODE_PRIVATE); 
int myIntValue = sp.getInt("your_int_key", -1); 

SharedPreference 인터페이스는 XML 파일에 액세스 할 수 있습니다, 그 에디터를 통해 수정하는 쉬운 방법 :

+0

** 간단한 접근 **은 http://github.com/viralypatel/Android입니다. -SharedPreferences-Helper ... 내 [answer here] (http://stackoverflow.com/a/35232248/1957401)에서 기술적 세부 사항을 확장했습니다 ... – AndroidMechanic

+0

이것을 확인하십시오 http://www.gadgetsaint.com/go/ xb023 – ASP

답변

50
SharedPreferences sp = getSharedPreferences("your_prefs", Activity.MODE_PRIVATE); 
SharedPreferences.Editor editor = sp.edit(); 
editor.putInt("your_int_key", yourIntValue); 
editor.commit(); 

당신은 그것으로 얻을 수 있습니다. 파일은 /data/data/com.your.package/shared_prefs/에 저장되며이 파일을 통해 onlu에 액세스 할 수 있습니다. SharedPreference API

+2

흠, 거기에 무슨 일이 벌어지고 있는지 이해하기 위해 몇 가지 코멘트를 달아 주실 수 있습니까? 예를 이해하지 못하겠습니까? 변수는 무엇입니까? "your_prefs"란 무엇입니까? 그 옆에있는 0은 무엇입니까? "your_int_key"란 무엇입니까 – donparalias

+1

사실, 당신은 또한'int_' 키와'your_int_key' 키를 찾을 수 없을 때 반환되는'getInt'에 디폴트 값을 제공해야합니다. 뭔가 이렇게 :'int myIntValue = sp.getInt ("your_int_key", -1);'-1은 기본값입니다. – zbr

+2

첫 번째 예제의'clearNotificationsSP'는 단지'sp'이어야한다고 생각합니다. 맞습니까? – Scorchio

6

이것은 부울 환경 설정을 설정하는 예제입니다. Integer도 사용할 수 있습니다.

SharedPreferences prefs = PreferenceManager 
        .getDefaultSharedPreferences(this); 
      if (!prefs.getBoolean("firstTime", false)) { 

       SharedPreferences.Editor editor = prefs.edit(); 
       editor.putBoolean("firstTime", true); 
       editor.commit(); 
      } 

희망 하시겠습니까?

10
public void SaveInt(String key, int value){ 
     sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); 
     SharedPreferences.Editor editor = sharedPreferences.edit(); 
     editor.putInt(key, value); 
     editor.commit(); 
} 
public void LoadInt(){ 
     sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); 
     savedValue = sharedPreferences.getInt("key", 0); 
} 

변수를 어딘가에 저장하려면 SaveInt ("key", 5); 이 값을 사용하면 값 5를 저장하고 첫 번째 기본값은 0입니다.이 값을로드하여 다른 활동에서 사용하려면이 두 가지 메소드를 모두 작성하고 LoadInt()를 호출해야합니다. 여기서 변수가 필요합니다. savedValue는 미리 정의 된 정수입니다 (저장된 변수를 사용하고자하는 모든 곳에서 선언해야합니다)

+0

https://gist.github.com/john1jan/b8cb536ca51a0b2aa1da4e81566869c4 – John

관련 문제