Получение / установка значений SharedPreference globaly - PullRequest
3 голосов
/ 15 ноября 2011

Привет, у меня есть класс (MyCustomForm.xml), который я использую как LoginForm для пользователя.Теперь я хочу сохранить и загрузить значение из имени пользователя (EditText) из LoginForm, используя SharedPreferences, но я не знаю, как установить значение имени пользователя, сохраненного SharedPreferences в EditText в LoginForm(MyCustomForm.xml).

Я думал сохранить значение в OnPause в моем файле Main.xml и загрузить значение через OnCreate в классе MyCustomForm.xml

В общем, я хотел быиспользовать SharedPreferences globaly.

Как это будет выглядеть?Может кто-нибудь помочь мне встать на правильный путь?

Он думал что-то вроде этого Main.xml:

public class AndroidLogin extends Activity implements OnClickListener {

@Override     
protected void onPause() { 
   super.onPause();  
     Editor e = mPrefs.edit();
     e.putString(USERNM, username);
     e.commit();
}
}

Код MyCustomForm (LoginForm):

public class MyCustomForm extends Dialog {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(com.sencide.R.layout.inlogdialog);

    EditText userTest = (EditText)findViewById(R.id.txtUserName);
    userTest.setText(USERNM);
}
}

Ответы [ 5 ]

10 голосов
/ 15 ноября 2011

Вы можете сделать что-то вроде этого:

SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(YouActivity.this);

String servername = settings.getString("sharedPreferencesKey", "defaultValue");
server.setText(servername);  // EditText

И вы храните данные так:

SharedPreferences.Editor editor = settings.edit();
editor.putString("server", "serverName");

РЕДАКТИРОВАТЬ:

Этот фрагмент кода должен сделатьтрюк для вас:

SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(context.getApplicationContext());
String servername = settings.getString("sharedPreferencesKey", "defaultValue");
2 голосов
/ 15 ноября 2011

Вам нужно использовать Prefs & Editor

SharedPreferences spOptions;
SharedPreferences.Editor spOptionEditor;

spOptions = getSharedPreferences("yourKey", 0);
spOptionEditor = spOptions.edit();

string username = spOptions.getString("USERNM", null)

null представляет значение по умолчанию, если у вас еще ничего не сохранено

Вы храните данные следующим образом:

spOptionEditor.putString("USERNM", txtUsername.getText().toString());
spOptionEditor.commit();
1 голос
/ 15 ноября 2011

Как правило, я бы порекомендовал вам сохранять имя пользователя при действительном входе в систему, а не при любом методе жизненного цикла. Затем измените myForm на это:

public class MyCustomForm extends Dialog {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(com.sencide.R.layout.inlogdialog);
        String s = getContext().getSharedPreferences("prefName", Mode.PRIVATE).getString(USERNM);
        EditText userTest = (EditText)findViewById(R.id.txtUserName);
        userTest.setText(s);
    }

}

0 голосов
/ 18 июня 2014
public void sharedPrefernces() {
    sh_Pref = getSharedPreferences("Login Credentials", MODE_PRIVATE);
    toEdit = sh_Pref.edit();
    toEdit.putString("Username", username);
    toEdit.putString("Password", password);
    toEdit.commit();

}

Подробнее: http://mrbool.com/how-to-implement-shared-preferences-in-android/28370#ixzz34ymRp6mN

0 голосов
/ 15 ноября 2011

Просто создайте файл с именем Preferences ... и сохраните его значение различными способами.

Используйте методы, которые люди предложили поместить и получить от них данные ...

    public class Settings extends PreferenceActivity implements
    OnSharedPreferenceChangeListener{
          public static final String PREFS_PRIVATE = "PREFS_PRIVATE";
          public static final String MASTERKEY = "!@#$%^&*";

          public static final String KEYA = "KEYA";
          public static final String KEYB = "KEYB";
          public static final String KEYC = "KEYC";

           --- the create and get methods for getting and sharing data in the prefs... ..... 
         public static void createPreference(Context context){

        getPrefs(context).edit().putString(KEYA, "Default");
        getPrefs(context).edit().putInt(KEYB, 0);
        getPrefs(context).edit().putLong(KEYC, 0);
        getPrefs(context).edit().putBoolean(KEYD, false);
        getPrefs(context).edit().commit();

    }

    public static SharedPreferences getPrefs(Context context) {
        return context.getSharedPreferences(PREFS_PRIVATE, 0);
        }
        public static String getUsername(Context context) {

            getPrefs(context).getString(USERNAME, "default");

        }

    public static void setUsername(Context context, String value) {


            getPrefs(context).edit().putString(USERNAME, value).commit();

    }
}

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...