2016-03-31 10 views
0

共有環境設定を使用して別のアクティビティからデータを取得したいのですが、これはjsonオブジェクトのデータを正常に設定したLoginDaoクラスです。アンドロイド:共有環境設定を使用して他のアクティビティからデータを取得する方法

public class LoginDao implements LoginListner { 
    private ArrayList<LoginModel> alLogin; 
    @Override 
    public ArrayList<LoginModel> getLoginDeatilFromJson(JSONObject jsonObject) { 
     try { 
      alLogin = new ArrayList<LoginModel>(); 
      if (jsonObject != null) { 

       LoginModel model = new LoginModel(); 

       model.setStrShiftee_id(jsonObject.getString(WebField.LOGIN_USER.RESPONSE_SHIFTEE_ID)); 
       model.setStrFName(jsonObject.getString(WebField.LOGIN_USER.RESPONSE_FIRST_NAME)); 
       model.setStrLName(jsonObject.getString(WebField.LOGIN_USER.RESPONSE_LAST_NAME)); 
       model.setStrEmail(jsonObject.getString(WebField.LOGIN_USER.RESPONSE_EMAIL)); 
       model.setStrSkill(jsonObject.getString(WebField.LOGIN_USER.RESPONSE_SKILL)); 
       model.setStrAddress1(jsonObject.getString(WebField.LOGIN_USER.RESPONSE_ADDRESS1)); 
       model.setStrAddress2(jsonObject.getString(WebField.LOGIN_USER.RESPONSE_ADDRESS2)); 
       model.setStrCity(jsonObject.getString(WebField.LOGIN_USER.RESPONSE_CITY)); 
       model.setStrCountryName(jsonObject.getString(WebField.LOGIN_USER.RESPONSE_COUNTRY_NAME)); 
       model.setStrStateName(jsonObject.getString(WebField.LOGIN_USER.RESPONSE_STATE_NAME)); 
       model.setStrPinCode(jsonObject.getString(WebField.LOGIN_USER.RESPONSE_PINCODE)); 
       model.setStrContact(jsonObject.getString(WebField.LOGIN_USER.RESPONSE_CONTACT1)); 
       model.setStrDegree(jsonObject.getString(WebField.LOGIN_USER.RESPONSE_DEGREE)); 
       model.setStrCollege(jsonObject.getString(WebField.LOGIN_USER.RESPONSE_COLLEGE)); 
       model.setStrYear(jsonObject.getString(WebField.LOGIN_USER.RESPONSE_YEAR)); 
       model.setStrGrade(jsonObject.getString(WebField.LOGIN_USER.RESPONSE_GRADE)); 

       alLogin.add(model); 

       Log.e("Checking Register Dao size", ">" + alLogin.size()); 
       Log.e("Checking Register Dao", ">" + alLogin); 
       return alLogin; 
      } 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
     return alLogin; 
    } 
} 

私のモデルクラスです。

public class LoginModel implements Serializable { 
    private String strFName; 
    private String strLName; 

    public String getStrFName() { 
     return strFName; 
    } 
    public void setStrFName(String strFName) { 
     this.strFName = strFName; 
    } 
    public String getStrLName() { 
     return strLName; 
    } 
    public void setStrLName(String strLName) { 
     this.strLName = strLName; 
    } 
} 

ユーザーのデータを保存するために、SessionManagerクラスの名前に共有設定を使用しました。

public class SessionManager { 
    private static final String PREF_NAME = "Session"; 
    public static final String KEY_FIRSTNAME = "firstName"; 
    public static final String KEY_LNAME = "lastName"; 
    public static final String KEY_EMAIL = "emailAddress"; 
    public static final String KEY_ADDRESS1 = "address1"; 
    public static final String KEY_ADDRESS2 = "address2"; 

    public static void saveUsersDetails(Context context, String strFname, String strLname, String strEmail, String strAddress1, String strAddress2) { 
     try { 
      SharedPreferences preferences = context.getApplicationContext().getSharedPreferences(PREF_NAME, Context.MODE_PRIVATE); 
      SharedPreferences.Editor editor = preferences.edit(); 

      editor.putString(KEY_FIRSTNAME, strFname); 
      editor.putString(KEY_LNAME, strLname); 
      editor.putString(KEY_EMAIL, strEmail); 
      editor.putString(KEY_ADDRESS1, strAddress1); 
      editor.putString(KEY_ADDRESS2, strAddress2); 

      editor.commit(); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 

    public static LoginModel getUserDetail(Context context) { 
     LoginModel loginModel = new LoginModel(); 
     SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context); 

     loginModel.setStrFName(preferences.getString(SessionManager.KEY_FIRSTNAME, "")); 
     loginModel.setStrLName(preferences.getString(SessionManager.KEY_LNAME, "")); 
    } 
} 

私は、共通のSessionManagerクラスを使用してデータを格納しており、別のアクティビティからすべてのデータを取得したいと考えています。

答えて

0

あなたは

LoginModelのuserData =新しいLoginModel()のような任意のクラスや活動からのデータを取得することができます。

userData = SessionManager.getUserDetail(MainActivity.this);

文字列UserName = userData.getStrFName();

関連する問題