2016-07-12 3 views
1

Я сделал приложение для чатов, которое просит пользователя ввести его имя пользователя каждый раз, когда я его открываю. Как я могу заставить его запомнить меня? Я использую fire-base для заднего конца.Как сделать Android-приложение запомнить мое имя пользователя?

See Code Here

+1

Вы можете сохранить сеанс входа пользователя в разделяемые предпочтения. то есть в вашем внутреннем хранилище/памяти устройства. –

ответ

2

Создание Shared класса предпочтений, где первый раз, когда пользователь ввести его/ее имя пользователя хранить его.

Вы можете прочитать больше о общей Preference here

The для вас следующим образом

public class SharePref { 

    public static final String PREF_NAME = "chatroom.shared.pref"; 
    public static final String PREF_KEY = "chatroom.shared.username"; 

    public SharePref() { 
    } 

    public void save(Context context, String text) { 
     SharedPreferences sharePref; 
     SharedPreferences.Editor editor; 
     sharePref = context.getSharedPreferences(PREF_NAME,Context.MODE_PRIVATE); 
     editor = sharePref.edit(); 
     editor.putString(PREF_KEY,text); 
     editor.apply(); 
    } 

    public String getData(Context context) { 
     SharedPreferences sharePref; 
     String text; 
     sharePref = context.getSharedPreferences(PREF_NAME,Context.MODE_PRIVATE); 
     text = sharePref.getString(PREF_KEY,null); 
     return text; 
    } 
} 

Теперь в вашем MainActivity вы можете проверить, если вы уже сохранили имя пользователя для пользователя

внутри вашего onCreate()

SharePref sharePref = new SharePref(); 
    String UserName = sharePref.getData(mContext); 
    if(UserName == null) { 
     String value = //username value; 
     SharePref sharePref = new SharePref(); 
     sharePref.save(context,value); 
    } 
    else { 
      // you already have username do your stuff 
    } 

Надеюсь, это поможет

+0

Контекст и mContext, указывающие на getApplicationContext() или что-то еще? –

+0

mContext - это контекст моей MainActivity, который я передаю классу общих предпочтений – eLemEnt

1

Вы можете использовать общие предпочтения. Скажем, вы сохраняете имя пользователя в строке «Пользователь». Чтобы сохранить имя пользователя:

SharedPreferences shareit = getSharedPreferences("KEY",Context.MODE_PRIVATE); 
        SharedPreferences.Editor eddy = shareit.edit(); 
        eddy.putString("AKEY", User); 
        eddy.commit(); 

и логин пользователя каждый раз:

SharedPreferences sharedPreferences = getContext().getSharedPreferences("KEY", Context.MODE_PRIVATE); 
    String getName = sharedPreferences.getString("AKEY", ""); 

Строка GetName будет иметь значение вашего имени пользователя. Используемые выше «KEY» и «AKEY» предназначены для предоставления специального идентификатора различным значениям, сохраненным с использованием общих предпочтений.

0
SharedPreferencec prefs = getSharedPreferences("username",Context.MODE_PRIVATE); 
SharedPreference.Editor editor = prefs.edit(); 
if (!prefs.getString("username",null) 
    //do the chatting 
else { 
    //show dialog to get username 
    //now save it in shared preferences 
    editor.putString("username",username); 
    editor.commit(); 
} 
Смежные вопросы