Хранить и получать значение на Android - PullRequest
1 голос
/ 22 января 2012

Я хочу сохранить значение String на Android и иметь доступ к этой строке каждый раз при запуске приложения.

Например, значение String будет иметь имя пользователя, которое он создал сам.И после перезапуска приложения он будет иметь это имя уже в верхней части.Как печенье или что-то в этом роде.Как сохранить такой файл в памяти Android?

Кто-нибудь может мне помочь?

Я использовал:

public class Login extends Activity
{
String user = null;

public String saveUserOnAndroid()
{
    SharedPreferences myPrefs = getApplicationContext().getSharedPreferences("myPrefs", 0);

    String savedUser = myPrefs.getString("user", null);

    if(savedUser == null)
    {
        user = UUID.randomUUID().toString();
        String hashedUser = md5(user);
        SharedPreferences.Editor myPrefsEditor = myPrefs.edit();

        myPrefsEditor.putString("user", hashedUser);
        myPrefsEditor.commit();

        return hashedUser;
    }   
    else
        return savedUser;
}

, и, похоже, не работает хорошо.

Ответы [ 3 ]

1 голос
/ 22 января 2012

Ну, вы не упомянули, что вызываете метод saveUserOnAndroid() из другого класса. В этом случае:

public String saveUserOnAndroid(Context c) {
  SharedPreferences myPrefs = c.getSharedPreferences("myPrefs", 0);
  String savedUser = myPrefs.getString("user", null);

  if(savedUser == null) {
    user = UUID.randomUUID().toString();
    String hashedUser = md5(user);
    SharedPreferences.Editor myPrefsEditor = myPrefs.edit();

    myPrefsEditor.putString("user", hashedUser);
    myPrefsEditor.commit();

    return hashedUser;
  } else {
    return savedUser;
  }
}

И при вызове этого метода не забудьте указать требуемый Context, и все будет в порядке.

0 голосов
/ 22 января 2012

Вы должны сделать это:

public static final String mypref="mypref";
public static String Username="";

@Override
public void OnCreate(Bundle ic){
super.OnCreate(ic);
setContentView(R.layout.main);
SharedPreference sh = getSharedPreference(mypref, 0);
Username = sh.getString("User", Username);
}

public void onPause(){
super.onPause();
SharedPreference sh = getSharedPreference(mypref, 0);
SharedPreference.Editor editor = sh.edit();
editor.putString("User", Username);
}
0 голосов
/ 22 января 2012

Есть несколько опций, описанных здесь .Я рекомендую использовать SharedPreferences .

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