android 해킹 - Android - 다른 활동에서 sharedpreferences를 얻으려면 어떻게해야하나요?




4 Answers

다음 기능을 사용하여 공유 환경 설정을 추가하고 모든 활동에서 저장된 값을 가져옵니다.

public static void setDefaults(String key, String value, Context context) {
    SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
    SharedPreferences.Editor editor = preferences.edit();
    editor.putString(key, value);
    editor.commit();
}

public static String getDefaults(String key, Context context) {
    SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
    return preferences.getString(key, null);
}
getsharedpreferences editor

내 앱에는 버튼이 있습니다 (activity1). 사용자가 그것을 클릭하면 나는 게임에서 소리를 싶지 않습니다. 나는 버튼의 onClick 메서드에서 activity1에 sharedpreferences를 사용하여이 작업을 수행해야한다고 생각했습니다.

SharedPreferences.Editor editor = mPrefs.edit();
editor.putString("sound","1");
editor.commit();

소리와 게임은 다른 활동 (activity2)에서 시작됩니다. 거기에 sharedpreferences 집합을 읽을 필요가 있지만 어떻게 해야할지 모르겠다.

감사

편집하다

나는이 라인을 나왔다.

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(Activity1.this);

Activity2.class에서 여러분의 도움을 바탕으로 다음과 같은 환경 설정을 읽었습니다 :

SharedPreferences myPrefs = getSharedPreferences("Activity1", MODE_PRIVATE);  //Activity1.class
String ifsound = myPrefs.getString("sound","");

 if (ifsound.equals("1"))
 {
     Toast.makeText(Activity1.this, "1", Toast.LENGTH_LONG).show();
 }
 else
 {
      Toast.makeText(Activity1.this, "0", Toast.LENGTH_LONG).show();
 }
  1. Activity1.class에서 버튼을 클릭하여 "소리"를 "1"로 설정하십시오.
  2. 나는 항상 Toast msg에서 항상 "0"을 얻는 Activity2.class를 여는 다른 btn을 클릭한다.



하나의 활동으로 저장할 수 있습니다.

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getActivity());
SharedPreferences.Editor editor = prefs.edit();
editor.putString("NameOfShared", "Value");
editor.commit();

다른 활동에서 얻으십시오 :

final SharedPreferences mSharedPreference= PreferenceManager.getDefaultSharedPreferences(getBaseContext()); 
String value=(mSharedPreference.getString("NameOfShared", "Default_Value"));



SharedPrefernces prefs = getPreferences();
String sound = prefs.getString("sound");

환경 설정 파일에 대해 동일한 파일 이름을 언급했는지 확인하십시오.




Context를 얻기 위해 MainActivity의 메소드를 먼저 작성하십시오.

 public  Context getContext(){
        Context mContext = MainActivity.this;
        return mContext;
    }

원하는 모든 수업에서 이것을 사용하십시오 :

MainActivity mContext = new MainActivity();
        SharedPreferences sharedPrefs = 
PreferenceManager.getDefaultSharedPreferences(mContext.getContext());            



Related

android sharedpreferences