Я новичок в разработке Android. Я хотел бы создать приложение с минимум двумя пользовательскими ролями. Я хочу, чтобы пользователи были перенаправлены на различные действия после входа в систему. Я читал, что это можно сделать с помощью firebase, но я не хотел бы использовать его в своем приложении, поскольку я уже начал создавать приложение и до сих пор использовал модернизацию и общие настройки. Я также нашел другой вопрос, когда она задала тот же вопрос, и кто-то ответил, что это можно сделать с помощью класса sessionManager.
Их ответ был:
"Ну, я хотел бы дать свой собственный ответ. Я на самом деле использовал Shared Preferences
. Это очень просто и может глобально использовать значения, которые мы вводим в него. Ниже приведен код:
1. Создайте отдельный класс и назовите его как хотите (я предпочитаю SessionManager здесь)
public class SessionManager {
// Shared Preferences
SharedPreferences sharedPrefer;
// Editor for Shared preferences
SharedPreferences.Editor editor;
// Context
Context context;
// Shared Pref mode
int PRIVATE_MODE = 0;
// Shared Pref file name
private static final String PREF_NAME = "MySession";
// SHARED PREF KEYS FOR ALL DATA
// User's UserId
public static final String KEY_USERID = "userId";
// User's categoryId
public static final String KEY_CATID = "catId";
// User's categoryType[Teacher, Student, etc.,]
public static final String KEY_CATTYPE = "categoryType";
// User's batchId[like class or level or batch]
public static final String KEY_BATCHID = "batchId";
// Constructor
public SessionManager(Context context) {
this.context = context;
sharedPrefer = context.getSharedPreferences(PREF_NAME, PRIVATE_MODE);
editor = sharedPrefer.edit();
}
/**
* Call this method on/after login to store the details in session
* */
public void createLoginSession(String userId, String catId, String catTyp, String batchId) {
// Storing userId in pref
editor.putString(KEY_USERID, userId);
// Storing catId in pref
editor.putString(KEY_CATID, catId);
// Storing catType in pref
editor.putString(KEY_CATTYPE, catTyp);
// Storing catType in pref
editor.putString(KEY_BATCHID, batchId);
// commit changes
editor.commit();
}
/**
* Call this method anywhere in the project to Get the stored session data
* */
public HashMap<String, String> getUserDetails() {
HashMap<String, String> user = new HashMap<String, String>();
user.put("userId",sharedPrefer.getString(KEY_USERID, null));
user.put("batchId",sharedPrefer.getString(KEY_BATCHID, null));
user.put("catId", sharedPrefer.getString(KEY_CATID, null));
user.put("catType", sharedPrefer.getString(KEY_CATTYPE, null));
return user;
}
}
2. Вызов вышеуказанных методов для некоторых других классов внутри проекта:
Хранение данных в сеансе
SessionManager session = new SessionManager(getApplicationContext());
session.createLoginSession(userId, categoryId, categoryType, batchId);
Получение данных из сеанса
SessionManager session = new SessionManager(getApplicationContext());
HashMap<String, String> user = session.getUserDetails();
String userId = user.get("userId").toString();
String categoryId = user.get("catId").toString();
String categoryType = user.get("catType").toString();
String batchId= user.get("batchId").toString();
"- @ sam
Я немного запутался с этим ответом. Я понимаю код, но не знаю, как это можно использовать для перенаправления пользователей на различные действия. Буду очень признателен за любую помощь и объяснения, как это сделать!