【问题标题】:Saving user_id responce from JSON to sharepreferance将用户 ID 响应从 JSON 保存到 sharedpreferences
【发布时间】:2015-01-03 09:17:09
【问题描述】:

任何人都可以帮助我我真的需要一个解决方案,我已经搜索过,无法成功!

我想将从服务器接收的自动生成的 user_id 存储为我的共享偏好中的 JSON 响应,然后再次从共享偏好获取到其他活动并作为参数发送到服务器

这是我的登录活动,在发送用户名并传递给服务器时,我在 JSON 响应中收到唯一的用户 ID

    public void connect(String useremail, String userpassword) throws JSONException, IOException
{
RestClient1 client = new RestClient1(Constants.serverPath + Constants.loginMethod);

client.addParam("email", useremail);
client.addParam("password", userpassword);
client.addHeader("content-type", "application/json");
try
{
String response = client.executePost();
JSONObject jsonResponse = new JSONObject(response);
String jsonData = jsonResponse.getString("code");
String jData = jsonResponse.getString("ResponseStatus");
jsData = jData;
if (jsonData.equals("200"))
{
System.out.println("responseStatus =" + jData);
startActivity(new Intent(LoginMainActivity.this, DashBoardActivity.class));
finish();
}



In the "ResponseStatus" I am geting "Login Succsesfull , user_id=1" from server <**<< want to store this response on Share Preference** 

我的基本会话管理器类未完全构造用于在 JSON 中存储响应

    public class SessionManager {
        // Shared Preferences
        SharedPreferences pref;

        // Editor for Shared preferences
        Editor editor;

        // Context
        Context _context;

        // Shared pref mode
        int PRIVATE_MODE = 0;

        // Sharedpref file name
        private static final String PREF_NAME = "Apppersonal";

        // All Shared Preferences Keys

         private static final String KEY_USERID = "user_id";    
      //  public static final String KEY_FULLNAME = "fullName";    
      //  public static final String KEY_EMAIL = "email";   
      //  public static final String KEY_DOB = "dateofbirth";    
       // public static final String KEY_ADDRESS = "address";


        // Constructor
        public SessionManager(Context context){
            this._context = context;
            pref = _context.getSharedPreferences(PREF_NAME, PRIVATE_MODE);
            editor = pref.edit();
        }
     public void createloginSession(int user_id)
       {
           // Storing id in pref
            editor.putInt(KEY_USERID, user_id);        

            editor.commit();

        }
      public HashMap<String, String> getPersonalDetails() {

    HashMap<String, String> userPersonal = new HashMap<String, String>();
    userPersonal.put(KEY_FULLNAME, pref.getString(KEY_FULLNAME, null));
    userPersonal.put(KEY_DOB, pref.getString(KEY_DOB, null));  
    userPersonal.put(KEY_EMAIL, pref.getString(KEY_EMAIL, null));
    userPersonal.put(KEY_ADDRESS, pref.getString(KEY_ADDRESS, null));
    // return user
   return userPersonal;
    // TODO Auto-generated method stub
//  return null;
}



// Clear session details
public void logoutUser(){
    // Clearing all data from Shared Preferences
    editor.clear();
    editor.commit();

    // After logout redirect user to Loing Activity
    Intent i = new Intent(_context, LoginMainActivity.class);
    // Closing all the Activities
    i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

    // Add new Flag to start new Activity
    i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

    // Staring Login Activity
    _context.startActivity(i);
}

}

【问题讨论】:

  • 存储 user_id 的值,从 JSON 到 session manager ,
  • 我没有看到任何问题,只需使用它应该可以工作的代码。

标签: android json sharedpreferences store server


【解决方案1】:

获取 user_id 后,只需执行以下操作:

SessionManager mSessionManager = new SessionManager(context);
mSessionManager.createloginSession(user_id);

【讨论】:

  • 非常感谢您的回复让我测试并返回
【解决方案2】:

延长活动后放

       SessionManager session;

然后在你的方法中放这个

session.createLoginSession(json.getString(user_id));

【讨论】:

  • 感谢 Indra,只问一件事 session.createLoginSession(json.getString(user_id));在 SessionManager 类右边
猜你喜欢
  • 2016-05-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-23
  • 2020-03-20
  • 1970-01-01
  • 2011-12-27
  • 2011-10-26
相关资源
最近更新 更多