gpt4 book ai didi

java - Android - 在 JSON 中存储有关用户登录的信息

转载 作者:行者123 更新时间:2023-12-01 17:07:46 25 4
gpt4 key购买 nike

在我的应用程序中,用户登录 LoginActivity ,使用 SessionManager 创建登录 session 我创建的类(其中有一个 SharedPreferences 对象,我为其输入 put 用户的电子邮件并将 boolean 值 isLoggedIn 设置为 true)。

现在,我真正想做的是将用户的 JSONObject我从LoginActivity中的服务器获得登录后,进入 SharedPreferences 。基本上我希望能够访问 JSON用户登录时,可以从应用程序中的任何位置查看文档。

但是,我意识到我不能输入 JSONObject进入编辑器。实现我所描述的功能的正确方法是什么?

如果相关...这是我的SessionManager具有 SharedPreferences 的类其中的对象(我不知道这是否是最好的方法):

package com.xxx.xxxx;
import java.util.HashMap;

import com.xxxx.auth.LoginActivity;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;

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 = "PREFS";

// All Shared Preferences Keys
private static final String IS_LOGIN = "IsLoggedIn";

// Email address
public static final String KEY_EMAIL = "email";

// Constructor
public SessionManager(Context context) {
this._context = context;
pref = _context.getSharedPreferences(PREF_NAME, PRIVATE_MODE);
editor = pref.edit();
}

/** Create login session */
public void createLoginSession(String email){
// Storing login value as TRUE
editor.putBoolean(IS_LOGIN, true);

// Storing email in pref
editor.putString(KEY_EMAIL, email);

// I WANTED TO STORE THE JSON HERE AFTER PASSING IT AS A PARAMETER
// IN THE METHOD

// commit changes
editor.commit();
}


/**
* Get stored session data
* */
public HashMap<String, String> getUserDetails(){
HashMap<String, String> user = new HashMap<String, String>();

// user email id
user.put(KEY_EMAIL, pref.getString(KEY_EMAIL, null));

// return user
return user;
}

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

redirect();
}

public void redirect() {
//redirect user to Login Activity
Intent i = new Intent(_context, LoginActivity.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);
}

// Get Login State
public boolean isLoggedIn() {
return pref.getBoolean(IS_LOGIN, false);
}
}

最佳答案

您只能在首选项 http://developer.android.com/reference/android/content/SharedPreferences.Editor.html 中存储简单类型。如果您确实想保存 JSON,请将其保存为 String 并使用 GSON ( https://code.google.com/p/google-gson/ ) 或其他 JSON 映射器对其进行解析。

关于java - Android - 在 JSON 中存储有关用户登录的信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24691827/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com