Sharedpreference storeData аварии приложение для Android - PullRequest
0 голосов
/ 02 ноября 2019

, пока я пытаюсь сохранить информацию о входе в систему с помощью SharedPreference, он просто вылетает из моего приложения. После входа приложение сохранит информацию о пользователе в localStore и покажет эти элементы на нескольких страницах. Мой класс User.java:

    package com.material.components;
    import com.google.gson.annotations.Expose;
    import com.google.gson.annotations.SerializedName;
    public class User {
      @SerializedName("name")
      @Expose
      public String name;
      @SerializedName("email")
      @Expose
      public String email;
      @SerializedName("username")
      @Expose
      public String username;
      @SerializedName("customer_id")
      @Expose
      public String customerId;
      @SerializedName("phone")
      @Expose
      public String phone;
      @SerializedName("password")
      @Expose
      public String password;

      public User(String name,String email,String username,String customerId,String phone,String password){
        this.name = name;
        this.email = email;
        this.username = username;
        this.customerId = customerId;
        this.phone = phone;
        this.password = password;
      }

      public String getName() {
        return name;
      }
      public String getEmail() {
        return email;
      }
      public String getUsername() {
        return username;
      }
      public String getCustomerId() {
        return customerId;
      }
      public String getPhone() {
        return phone;
      }
      public String getPassword() {
        return password;
      }
    }

Мой UserLocalStorage.java класс:


    package com.material.components;

    import android.content.Context;
    import android.content.SharedPreferences;

    public class UserLocalStorage {
        public static final String SP_NAME = "userDetails";
        SharedPreferences userLocalDatabase;

        public UserLocalStorage(Context context){
            userLocalDatabase = context.getSharedPreferences(SP_NAME,0);
        }
        public void storeUserData(User user){
            SharedPreferences.Editor spEditor = userLocalDatabase.edit();
            spEditor.putString("name",user.name);
            spEditor.putString("customer_id",user.customerId);
            spEditor.putString("username",user.username);
            spEditor.putString("password",user.password);
            spEditor.putString("email",user.email);
            spEditor.putString("phone",user.phone);
            spEditor.commit();
        }

        public User getLoggedInUser(){
            String name = userLocalDatabase.getString("name","");
            String customerId = userLocalDatabase.getString("customer_id","");
            String username = userLocalDatabase.getString("username","");
            String password = userLocalDatabase.getString("password","");
            String email = userLocalDatabase.getString("email","");
            String phone = userLocalDatabase.getString("phone","");
            User storedUser = new User(name,email,username,customerId,phone,password);
            return storedUser;
        }

        public void setUserLoggedIn(boolean loggedIn){
            SharedPreferences.Editor spEditor = userLocalDatabase.edit();
            spEditor.putBoolean("loggedIn",loggedIn);
            spEditor.commit();
        }

        public boolean getUserLoggedIn(){
            if(userLocalDatabase.getBoolean("loggedIn",false)==true){
                return true;
            }
            else{
                return false;
            }
        }

        public void clearUserData(){
            SharedPreferences.Editor spEditor = userLocalDatabase.edit();
            spEditor.clear();
        }
    }

и мой Класс входа :


        //.....after successfully loggedin.....
        User user_details = new User(null,null,null,null,null,null);
            userLocalStorage.storeUserData(user_details);
            userLocalStorage.setUserLoggedIn(true);
    Intent dashboard = new Intent(getBaseContext(), Dashboard.class);
                        startActivity(dashboard);

Кроме того, если я просто распечатаю конкретный элемент из объекта User, он показывает, но не может распечатать весь объект.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...