2016-11-10 5 views
-3

Я знаю, что этот вопрос задан много раз, но я не понимаю, как настроить, потому что я новичок в android.Как сохранить значение в общих предпочтениях и установить в spinner

Я попытался это:

1. saved prefrence

2. also use this

Вот мой код:

SharedPreferences.Editor editor = sharedpreferences.edit(); 
String gender = Gender.get(i).toString(); 
editor.putString(Gender1, gender); 
editor.commit(); 

list = new ArrayList<String>(); 
    list.add("Male"); 
    list.add("Female"); 

    ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(getActivity(), 
      android.R.layout.simple_spinner_item, list); 
    dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 

    // int selectedPosition = gender.getSelectedItemPosition(); 
    gender.setSelection(sharedpreferences.getInt("Gender1", -1)); 
    list.indexOf(sharedpreferences.getString(Gender1, "Gender1")); 
    gender.setAdapter(dataAdapter); 

EDIT: -
Я хочу установить сохраненное значение в блесны Я уже сохранен в Preference.

Пожалуйста, помогите мне.

Я хочу сохранить в этом значении, когда пользователь сохраняет свою детализацию счета

Спасибо заранее.

Само решение:

fgender= sharedpreferences.getString(Gender1, "Gender1"); 
    if(fgender.equals("Female")){ 
     gender.setSelection(1); 
    }else 
    { 
     gender.setSelection(0); 
    } 

Опять же, спасибо всем за ответы.

ответ

0

вы можете сохранить его как

SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context); 
    SharedPreferences.Editor editor = sharedPreferences.edit(); 
    editor.putInt("Gender1", -1); 
    editor.apply(); 

И получить сохраненное значение от предпочтений

SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context); 
    return sharedPreferences.getInt("Gender1", 0); 
+0

ok thanx я попробую это .... – seggy

+0

после сохранения в предпочтении ... как установить в spinner – seggy

+0

вернуть целочисленное значение, чтобы дифференцировать ч/б самец и самку, а затем установить для него выбранное значение pos –

0

Это мой EasyPref класс

public class EasyPref { 
    public EasyPref(Context context) { 
     sp = context.getSharedPreferences("com.example", Context.MODE_PRIVATE); 
    } 

    public void write(final String key, final String value) { 
     sp.edit().putString(key, value).commit(); 
    } 

    public void write(final String key, final boolean value) { 
     sp.edit().putBoolean(key, value).commit(); 
    } 

    public void write(final String key, final int value) { 
     sp.edit().putInt(key, value).commit(); 
    } 

    public void write(final String key, final Set<String> value) { 
     sp.edit().putStringSet(key, value).commit(); 
    } 

    public String read(final String key, final String alt) { 
     return sp.getString(key, alt); 
    } 

    public boolean read(final String key, final boolean alt) { 
     return sp.getBoolean(key, alt); 
    } 

    public int read(final String key, final int alt) { 
     return sp.getInt(key, alt); 
    } 

    public Set<String> read(final String key, final Set<String> alt) { 
     return sp.getStringSet(key, alt); 
    } 

    private SharedPreferences sp; 
} 
+0

Thanx Постараюсь это решение ... – seggy

+0

Это приемлемо только в том случае, если вам нужно сохранить несколько значений. Но если вам нужно хранить много значений «в то же время», вы должны использовать ответ от @mohamed amine –

-1

Просто поместите ключ и значение вашего дела.

SharedPreferences.Editor editor = getEditor(context); 
     editor.putString("KEY", "VALUE"); 
     editor.apply(); 
+0

thanx для rply. Я делаю это, но проблема при получении этих данных – seggy

+0

ну, просто измените putString с помощью getString. –

0

Copry и использовать этот classs, BYY помощью этого вы можете легко сохранять и извлекать общая привилегированная стоимость.

/** 
* This class handles the all the shared preference operation. 
* .i.e., creating shared preference and to set and get value. 
* 
* @author Jeevanandhan 
*/ 

    public class SharedPref { 


      // Single ton objects... 
      private static SharedPreferences preference = null; 
      private static SharedPref sharedPref = null; 

      //Single ton method for this class... 
      public static SharedPref getInstance() { 
       if (sharedPref != null) { 
        return sharedPref; 
       } else { 
        sharedPref = new SharedPref(); 
        return sharedPref; 
       } 
      } 


      /** 
      * Singleton object for the shared preference. 
      * 
      * @param context Context of current state of the application/object 
      * @return SharedPreferences object is returned. 
      */ 

      private SharedPreferences getPreferenceInstance(Context context) { 

       if (preference != null) { 
        return preference; 
       } else { 
        //TODO: Shared Preference name has to be set.... 
        preference = context.getSharedPreferences("SharedPreferenceName", Context.MODE_PRIVATE); 
        return preference; 
       } 
      } 

      /** 
      * Set the String value in the shared preference W.R.T the given key. 
      * 
      * @param context Context of current state of the application/object 
      * @param key String used as a key for accessing the value. 
      * @param value String value which is to be stored in shared preference. 
      */ 

      public void setSharedValue(Context context, String key, String value) { 
       getPreferenceInstance(context); 
       Editor editor = preference.edit(); 
       editor.putString(key, value); 
       editor.commit(); 
      } 


      /** 
      * Set the Integer value in the shared preference W.R.T the given key. 
      * 
      * @param context Context of current state of the application/object 
      * @param key String used as a key for accessing the value. 
      * @param value Integer value which is to be stored in shared preference. 
      */ 

      public void setSharedValue(Context context, String key, int value) { 
       getPreferenceInstance(context); 
       Editor editor = preference.edit(); 
       editor.putInt(key, value); 
       editor.commit(); 
      } 

      /** 
      * Set the boolean value in the shared preference W.R.T the given key. 
      * 
      * @param context Context of current state of the application/object 
      * @param key String used as a key for accessing the value. 
      * @param value Boolean value which is to be stored in shared preference. 
      */ 

      public void setSharedValue(Context context, String key, Boolean value) { 
       getPreferenceInstance(context); 
       Editor editor = preference.edit(); 
       editor.putBoolean(key, value); 
       editor.commit(); 
      } 

      /** 
      * Returns Boolean value for the given key. 
      * By default it will return "false". 
      * 
      * @param context Context of current state of the application/object 
      * @param key String used as a key for accessing the value. 
      * @return false by default; returns the Boolean value for the given key. 
      */ 

      public Boolean getBooleanValue(Context context, String key) { 
       return getPreferenceInstance(context).getBoolean(key, false); 
      } 

      /** 
      * Returns Integer value for the given key. 
      * By default it will return "-1". 
      * 
      * @param context Context of current state of the application/object 
      * @param key String used as a key for accessing the value. 
      * @return -1 by default; returns the Integer value for the given key. 
      */ 

      public int getIntValue(Context context, String key) { 
       return getPreferenceInstance(context).getInt(key, -1); 
      } 


      /** 
      * Returns String value for the given key. 
      * By default it will return null. 
      * 
      * @param context Context of current state of the application/object 
      * @param key String used as a key for accessing the value. 
      * @return null by default; returns the String value for the given key. 
      */ 

      public String getStringValue(Context context, String key) { 
       return getPreferenceInstance(context).getString(key, null); 
      } 

     } 

Сохранить значение как этот

SharedPref.getInstance().setSharedValue(this, "Gender1", 1); 

Получить значение, как это,

int gender = SharedPref.getInstance().getIntValue(this, "Gender1"); 

Вы можете использовать этот класс во всем вашем проекте. Это облегчает вашу работу.

Надеюсь, это полезно :)

+0

как установить значение в spinner ..... – seggy

+0

@seggy: Вы можете перейти по этой ссылке, чтобы установить значение в spinner. – Jeevanandhan

+0

@seggy: Извините, забыл вставить ссылку в приведенный выше комментарий. Здесь вы идете http://stackoverflow.com/a/4228121 – Jeevanandhan

0

Попробуйте это. Используйте статические методы, так что вы можете получить доступ к нему, не создавая объект

public abstract class AppPref { 

    private static final String PREF_NAME = "MyPref"; 

    public static void setPreferences(String key, String value, Context context) { 
     context.getSharedPreferences(PREF_NAME, Context.MODE_PRIVATE).edit() 
       .putString(key, value).apply(); 
    } 

    public static void setPreferences(String key, boolean value, Context context) { 
     context.getSharedPreferences(PREF_NAME, Context.MODE_PRIVATE).edit() 
       .putBoolean(key, value).apply(); 
    } 

    public static void setPreferences(String key, int value, Context context) { 
     context.getSharedPreferences(PREF_NAME, Context.MODE_PRIVATE).edit() 
       .putInt(key, value).apply(); 
    } 

    public static String getString(String name, String defaults, Context context) { 
     return context.getSharedPreferences(PREF_NAME, Context.MODE_PRIVATE) 
       .getString(name, defaults); 
    } 

    public static boolean getBoolean(String name, boolean defaults, 
            Context context) { 
     return context.getSharedPreferences(PREF_NAME, Context.MODE_PRIVATE) 
       .getBoolean(name, defaults); 
    } 

    public static int getInt(String name, int defaults, Context context) { 
     return context.getSharedPreferences(PREF_NAME, Context.MODE_PRIVATE) 
       .getInt(name, defaults); 
    } 

} 

Использование

// Set preference 
AppPref.setPreferences("key", "value", getApplicationContext()); 
AppPref.setPreferences("key", 25, getApplicationContext()); 
AppPref.setPreferences("key", true, getApplicationContext()); 

// Get preference value 
AppPref.getString("key", "default value",getApplicationContext()); 
AppPref.getInt("key", 0, getApplicationContext()); 
AppPref.getBoolean("key", false, getApplicationContext()); 
+0

хотите установить значение в spinner ... like Male Female – seggy

+0

Вы имеете в виду это: - AppPref.setPreferences ("Пол", "Мужчина", getApplicationContext()); и AppPref.getString («Пол», «not_saved_yet», getApplicationContext()); – young

+0

спасибо за rply, но как извлечь сохраненную ценность в spinner и установить в spinner .. извините за это, потому что я новый в android, и я просто возглавляю этот проект – seggy