2012-06-29 2 views
3

SharedPreferences를 사용하여 내 응용 프로그램의 모든 활동에 액세스 할 수있는 데이터를 저장하고 검색하려고합니다. 그게 가능하니? 지금까지는 특정 활동을 위해 데이터가 저장되도록 해왔습니다.모든 활동에 액세스 할 수있는 SharedPreferences에 데이터 저장

+0

당신 기본 환경 설정 파일을 사용할 수도 있습니다. [this] (http : // stackove rflow.com/questions/2614719/how-do-i-get-the-sharedpreferences-from-a-preferenceactivity-in-android) – dmon

답변

4

예. SharePreferences 정확히 이것을 할. 당신이 할 수있는 모든 활동에서 :이 문서입니다

mPrefs.getString(name, ""); 

: 다음

SharedPreferences prefs = getSharedPreferences(ApplicationConstants.PREFERENCES, Context.MODE_PRIVATE); 
SharedPreferences.Editor editor = prefs.edit(); 
editor.putString(name, value); 
editor.commit(); 

그리고 다른 activty에서 값을 검색이 일 http://developer.android.com/reference/android/content/SharedPreferences.html

그리고이에 대한 좋은 예입니다 다음으로 시작 :

http://myandroidsolutions.blogspot.it/2012/03/android-preferenceactivity.html

+0

정말 도움이됩니다. :) –

+0

이것은 유용하게 보이지만 최신입니까? 나는 "ApplicationConstants"가 무엇인지 궁금해하며 문서에서 그것에 대한 어떠한 정보도 찾을 수 없다. 또한 블로그의 좋은 예는 없어졌습니다. 그것은 이해하지만, 나는 대답이 5 년 전에 주어 졌다는 것을 알고 있습니다. – Zerato

0

네, 그게 그 목적입니다. 당신이 당신의 모든 활동에 값에 액세스하려면

shp.getString("var1", "defvalue"); 
+1

좋습니다, getSharedPreferences라고합니다. 나는 getPreferences 만 사용했다. 감사! – AndroidDev

0

내가 더 좋은 방법이 생각 : 여기

Editor

final SharedPreferences shp   = ctx.getSharedPreferences(ctx.getString(R.string.app_name), Context.MODE_PRIVATE); 
    final SharedPreferences.Editor ed = shp.edit(); 
    ed.putString("var1", "var1"); 
    ed.putString("var2", "var2"); 

을 통해, 그것을 작성해야 그리고 그것을로드하는 방법 사용자 지정 응용 프로그램 클래스에 저장하고 나중에 수행 할 수있는 작업 :

((CustomApplication)getApplication()).getStoredValue() 

공유 환경 설정은 파일에 저장되며이 파일 액세스는 느립니다.

0

나는 더 나은 버전이 있습니다. 때로는 getSharedPreferences을 시도 할 때 찾을 수없는 오류가 발생할 수 있습니다. 이것은 Android 프로젝트에 값을 저장하는 방법입니다.

SharedPreferences sharedPreferences=this.getSharedPreferences("packagename", Context.MODE_PRIVATE); 

sharedPreferences.edit().putString("username", "specify name here").apply(); 

패키지 이름 추가 직접 활동 전의 상단에서 복사 할 수 있습니다 :

가 검색 com.example.name.projectname

String username = sharedPreferences.getString("username",""); 
관련 문제