2016-10-20 35 views
0

我的LoginActivity正在向URL發送用戶名和密碼並獲得成功狀態。我想在會話中存儲json響應,如userid,名稱,電子郵件信息,並在MainActivity中檢索它。我正在使用下面的代碼json響應。將json響應數組存儲到會話中

JSONObject jObj = new JSONObject(response); 
String userId = jObj.getString("user_id"); 

我的回答是

{"tag":"login", 
"error":false, 
"user_id":"5", 
    "user":{"name":"Chandra shankar", 
      "email":"[email protected]" 
      } 
} 

下面是我在Session.java

public class Session { 
    private SharedPreferences sp; 
    private SharedPreferences.Editor spEditor; 


    public Session(Context context) { 
     sp = PreferenceManager.getDefaultSharedPreferences(context); 

    } 


    public boolean setLogin(boolean status) { 
     spEditor = sp.edit(); 
     spEditor.putBoolean("is_logged_in", status); 
     spEditor.commit(); 
     return true; 
    } 

    public boolean getLoggedIn() { 
     return sp.getBoolean("is_logged_in", false); 
    } 

} 
+0

SharedPreferences並將其保存爲字符串與私人訪問 – Olu

+0

兄弟我是新來的android可以回答我的問題。我也需要在MainActivity中打印存儲的數據。 –

+0

即使離線時也想自動登錄嗎? – Olu

回答

1

使用SharedPreferences SharedPreferences。

SharedPreferences preferences = this.getSharedPreferences("APP_NAME", Context.MODE_PRIVATE); 
SharedPreferences.Editor editor = preferences.edit(); 

editor.putString("ID", userId).apply(); 

如果你想獲得回值。

String id = preferences.getString("ID"); 

編輯

public class Session { 
    private SharedPreferences sp; 
    private SharedPreferences.Editor spEditor; 
    private String ISLOGIN = "is_logged_in"; 
    private String USER_ID = "user_id"; 

    public Session(Context context) { 
     sp = PreferenceManager.getDefaultSharedPreferences(context); 

    } 


    public boolean setLogin(boolean status) { 
     spEditor = sp.edit(); 
     spEditor.putBoolean(ISLOGIN, status); 
     //use apply for async process 
     spEditor.apply(); 
     return status; 
    } 

    public boolean getLoggedIn() { 
     return sp.getBoolean(ISLOGIN, false); 
    } 

    public void setUserId(String userid){ 
     sp.edit().putString(USER_ID,userid).apply(); 
    } 


    //get user id 
    public String getUserId(){ 
     return sp.getString(USER_ID); 
    } 

} 
在活動

//

Session session = new Session(this); 
String id = session.getUserId(); 

P/S:我建議你使用這個TinyDB SharedPreferences

+0

好的謝謝你的迴應。請參閱我的代碼,我只是添加我正在使用的SharedPreferences。我需要添加用戶ID作爲會話 –

+0

我編輯了我的答案..你可以看一看 – ZeroOne

0

所以,你實際上需要兩個步驟。您需要解析響應,然後您需要保存它。

對於解析json響應,您可以構建一個POJO類。 GSON將對此有所幫助。您也可以按照this鏈接解析迴應。

然後您可以將數據保存到Shared Preference/Sqlite/Local變量/文件或任何其他地方,並根據您的需要使用保存的值。