2017-04-17 88 views
1

如何使用共享首選項創建多會話,以便兩個用戶可以在同一會話中登錄和註銷?使用SharedPreferences登錄很多用戶

我有以下代碼。

public class Session 
{ 
    SharedPreferences prefs; 
    SharedPreferences.Editor editor; 
    Context ctx; 
    String [][] usuarios; 
    int i,j; 

    public Session(Context ctx) 
    { 
     this.ctx = ctx; 
     prefs = ctx.getSharedPreferences("init", Context.MODE_PRIVATE); 
     editor = prefs.edit(); 
    } 

    public void setLoggedIn(boolean loggedin) 
    { 
     editor.putBoolean("loggedinmode",loggedin); 
     editor.commit(); 
    } 

    public boolean loggedin() 
    { 
     return prefs.getBoolean("loggedinmode",false); 
    } 
} 

我正在使用Android Studio。

+0

兩個用戶最大?或者任何數字?此外,SharedPreferences不是存儲列表的好方法,更好的解決方案是使用JSON或純文本文件。 –

回答

0

你可以存儲列表,你只需要使用一個聰明的方式。有一個名爲Gson的庫,它可以序列化和反序列化Java對象。所以你可以做的是創建一個對象列表,調用Gson.toJson,它將對象轉換成該對象的json字符串表示形式,然後將其作爲字符串以共享的優先級與您的唯一名稱一起存儲。然後修改讀取的對象,使用從傑森,做你的事情,並保存。提示,這個操作雖然可行,但是從長遠來看可以使用數據庫,領域很棒。

+0

Gson是一個Java庫,可用於將Java對象轉換爲其JSON表示。它也可以用來將JSON字符串轉換爲等效的Java對象。 Gson可以使用任意Java對象。 – Remario

0

爲什麼只是不使用SQLite? Sharedpreferences也可以,但共享首選旨在保存簡單的值。

如果使用的是SharedPreferences,只是區分鍵名前: 「User1_session_login」, 「User2_session_login」

public void setLoggedIn(String key,boolean loggedin){ 
      editor.putBoolean(key,loggedin); 
      editor.commit(); 
}