¿Cómo utilizo las preferencias compartidas en un fragmento de Android?

Tengo un fragmento y quiero almacenar el ID de Facebook en una preferencia compartida. No puedo escribir modo privado en la función de preferencia de obtener. Y también quiero acceder a esta preferencia compartida en otro fragmento. ¿Cómo puedo hacerlo?

Aquí está mi código …

Session.openActiveSession(getActivity(), true, new Session.StatusCallback() { @Override public void call(Session session, SessionState state, Exception exception) { if (session.isOpened()) { Request.executeMeRequestAsync(session,new Request.GraphUserCallback() { @Override public void onCompleted(GraphUser user, Response response) { if (user != null) { t = (TextView)rootView.findViewById(R.id.textView2); p = (ProfilePictureView)rootView.findViewById(R.id.profilePictureView1); p.setProfileId(user.getId()); s = user.getName(); t.setText(s); s1 = user.getId(); private void SavePreferences(String key,String value) { SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE); SharedPreferences.Editor editor = sharedPreferences.edit(); editor.putString(key, value); editor.commit(); } 

6 Solutions collect form web for “¿Cómo utilizo las preferencias compartidas en un fragmento de Android?”

Usar Shared Preferences dentro de un Fragment ; vea abajo.

Primero escribe en SharedPreferences :

 SharedPreferences pref = getActivity().getPreferences(Context.MODE_PRIVATE); SharedPreferences.Editor edt = pref.edit(); edt.putString("facebook_id", id); edt.commit(); 

Aquí id es la cadena que contiene el ID de Facebook que tienes, y 0 indica private_mode.

Segundo, para leer el ID de Facebook almacenado en SharedPreference en otro Fragment :

 SharedPreferences pref = getActivity().getPreferences(Context.MODE_PRIVATE); String id = pref.getString("facebook_id", "empty"); 

Aquí vacío es el valor predeterminado devuelto si facebook_id es nulo dentro de SharedPreference .

También puede hacer como,

 editor = getActivity().getSharedPreferences(MY_PREFS_NAME, Context.MODE_PRIVATE).edit(); editor.putString("yourtextvalueKey", test); editor.commit(); 

Y para obtener

 prefs = getActivity().getSharedPreferences(MY_PREFS_NAME, Context.MODE_PRIVATE); text = prefs.getString("yourtextvalueKey", null); 

Actualice su método SavePreferences siguiente manera:

 private static String MY_PREFS = "My_Preference"; private void SavePreferences(String key, String value) { SharedPreferences sharedPreferences = getActivity().getSharedPreferences( MY_PREFS, 0); SharedPreferences.Editor editor = sharedPreferences.edit(); editor.putString(key, value); editor.apply(); } 
  • Crear una clase de sesión por separado:

     public class Session { private static String PREF_NAME = "Memory"; private static String FBID = "FBID "; public static boolean saveSessionId(String FBID , Context context) { Editor editor = context.getSharedPreferences(PREF_NAME, 0).edit(); editor.putString(FBID , FBID); return editor.commit(); } public static String getSessionId(Context context) { SharedPreferences savedSession = context.getSharedPreferences( PREF_NAME, 0); return savedSession.getString(FBID , null); } } 

Llame al método de guardar cuando desee guardar el ID. Luego, de la misma manera, llame al método getsessionid para obtener ese ID.

 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setHasOptionsMenu(true); getSharedPrefs(); } private void getSharedPrefs() { sharedpreferences = getActivity().getSharedPreferences( Data.MY_PREFERENCES, Context.MODE_PRIVATE); // check for all to be loaded here boolean isValid = false; int posImage = 0; if (sharedpreferences.contains(Data.COLUMN_IMAGENUMBER)) { posImage = sharedpreferences.getInt(Data.COLUMN_IMAGENUMBER, 0); if (posImage >= 0 || posImage < Data.PICS.length) { isValid = true; } } else { isValid = false; } } @Override public void onStop() { super.onStop(); Editor editor = sharedpreferences.edit(); editor.putInt(Data.COLUMN_IMAGENUMBER, cv.currentPuzzleImagePosition); editor.apply(); } 

Pruebe con este código. Esto es suficiente para esta Shared preference , y funciona ya sea que trabaje en actividad o Fragment . Shared preference no puede reflejar ni puede ser efectiva ni Actividad ni Fragment .

Para más haga clic aquí

  • Cómo cambiar el valor de preferencia compartida de Android de String a Int
  • SharedPreference Cambios no reflejados en mi servicio de fondo de pantalla
  • NullPointerException en getDefaultSharedPreferences
  • Android SDK equivlent para viewWillAppear (iOS)?
  • Actualizaciones de Android en Play Store
  • Mantener más de un archivo de preferencias compartidas en android
  • Perder algunos valores usando getStringSet y putStringSet
  • Android Studio - Explorador de archivos de Android Device Monitor no funciona
  • Android se niega a escribir / crear archivos de preferencias compartidas
  • Escribir la clave pública / privada en SharedPreferences y usarla
  • Las Preferencias compartidas se pierden después de cerrar el dispositivo o de matar la aplicación.
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.