[英]Unable To call the function(constructor) of shared Preferences class for maintaining Session
我創建了一個用於存儲會話的類,因此,如果用戶未注銷,我可以繞過登錄屏幕,但是我不知道為什么我無法訪問該類的函數(構造函數)。
package pk.com.edu.farrukhabbas.hcs.Combined;
import java.util.HashMap;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import pk.com.edu.farrukhabbas.hcs.Doctor.DoctorSignInActivity;
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 = "Farrukh Abbas" , IS_LOGIN = "" , KEY_NAME = "", KEY_EMAIL = "", KEY_USERDESIG = "", KEY_ID = "", KEY_MOBILE = "", KEY_CNIC = "",
KEY_DOB = "", KEY_GENDER = "", KEY_PASSWORD = "", KEY_LAT = "", KEY_LONG = "";
// Constructor
public SessionManager(Context context) {
this._context = context;
pref = _context.getSharedPreferences(PREF_NAME, PRIVATE_MODE);
editor = pref.edit();
}
public void session()
{
}
public void createPatientLoginSession(String USERDESIG, String ID, String NAME, String MOBILE, String CNIC, String DOB, String EMAIL, String GENDER, String PASSWORD)
{
// Storing login value as TRUE
editor.putBoolean(IS_LOGIN, true);
editor.putString(KEY_NAME, NAME);
editor.putString(KEY_USERDESIG, USERDESIG);
editor.putString(KEY_CNIC, CNIC);
editor.putString(KEY_ID, ID);
editor.putString(KEY_DOB, DOB);
editor.putString(KEY_MOBILE, MOBILE);
editor.putString(KEY_GENDER, GENDER);
editor.putString(KEY_EMAIL, EMAIL);
editor.putString(KEY_PASSWORD, PASSWORD);
// commit changes
editor.commit();
}
/**
* Quick check for login
* **/
// Get Login State
public boolean isLoggedIn(){
return pref.getBoolean(IS_LOGIN, false);
}
public void checkLogin(){
// Check login status
if(!this.isLoggedIn()){
// user is not logged in redirect him to Login Activity
if(KEY_USERDESIG.equals("Doctor")) {
Intent i = new Intent(_context, DoctorSignInActivity.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);
}
else
{
Intent i = new Intent(_context, SignInActivity.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);
}
}
}
/**
* Clear session details
* */
public void logoutUser(){
// Clearing all data from Shared Preferences
String userDeignation = KEY_USERDESIG;
editor.clear();
editor.commit();
if(userDeignation.equals("Doctor")) {
Intent i = new Intent(_context, DoctorSignInActivity.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);
}
else
{
Intent i = new Intent(_context, SignInActivity.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);
}
}
}
這是我的主調用中的代碼,在該代碼中創建對象並調用其構造函數
SessionManager session;
session = new SessionManager((zzw) getApplicationContext());
session.createPatientLoginSession(userDesignation, user_Id , user_Name
,user_Mobile ,user_Cnic, user_Dob , user_Email ,user_Gender,
user_Password);
SessionManager類是類中的Bilt並且編譯器正在尋找函數
createPatientLoginSession()
在該內置類中,因為它具有較高的優先級,將您的類“ SessionManager”的名稱更改為任何其他名稱將解決該問題
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.