Я делюсь с вами самым простым способом установить и получить sharedpreference
данные:
Сначала создайте класс для Shared Preference
вот так:
public class MySharedPreferences {
private static String MY_PREFS = "MyPrefs";
private static String IS_LOGGED_IN = "is_logged_in";
private static String USERNAME_ID = "username"
public static MySharedPreferences instance;
private Context context;
private SharedPreferences sharedPreferences;
private SharedPreferences.Editor editor;
public static MySharedPreferences getInstance(Context context) {
if (instance == null)
instance = new MySharedPreferences(context);
return instance;
}
private MySharedPreferences(Context context) {
this.context = context;
sharedPreferences = context.getSharedPreferences(MY_PREFS, Context.MODE_PRIVATE);
editor = sharedPreferences.edit();
}
public void deleteAllSharePrefs(Context context){
this.context = context;
sharedPreferences = context.getSharedPreferences(MY_PREFS,Context.MODE_PRIVATE);
editor.clear().commit();
}
public Boolean getIsLoggedIn(boolean b) {
return sharedPreferences.getBoolean(IS_LOGGED_IN, false);
}
public void setIsLoggedIn(Boolean isLoggedIn) {
editor.putBoolean(IS_LOGGED_IN, isLoggedIn);
editor.commit();
}
public String getUsername() {
return sharedPreferences.getString(USERNAME_ID, "");
}
public void setUsername(String username) {
editor.putString(USERNAME_ID, username);
editor.commit();
}
тогда, где вы хотите установить SharedPreference:
public void BackMain ( View view ){
EditText editText = ( EditText) findViewById( R.id.editText3) ;
MySharedPreferences.getInstance(Main2Activity.this).setUsername(editText.getText().toString());
Intent intent = new Intent( getApplicationContext() ,MainActivity.class )
startActivity(intent);
}
Теперь получите SharedPreference во втором упражнении:
MySharedPreferences.getInstance(ACTIVITYNAME.this).getUsername();
или во фрагменте:
MySharedPreferences.getInstance(getActivity()).getUsername();
или в адаптере:
MySharedPreferences.getInstance(context).getUsername();