Я хочу сохранить значение 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;
}
и это, кажется, не работает хорошо.
Ну, вы не упомянули, что вы вызываете метод 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
и вы должны быть в порядке.
Существует несколько вариантов, описанных здесь. Я рекомендую использовать SharedPreferences.
SharedPreferences
?
Вы должны это сделать:
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);
}