SharedReference storeData崩溃android应用程序
当我试图使用SharedReference存储loggedin信息时,它只是使我的应用程序崩溃。登录后,应用程序将用户信息存储到localStore中,并在多个页面中显示这些项目。 MyUser.java类:SharedReference storeData崩溃android应用程序,android,sharedpreferences,Android,Sharedpreferences,当我试图使用SharedReference存储loggedin信息时,它只是使我的应用程序崩溃。登录后,应用程序将用户信息存储到localStore中,并在多个页面中显示这些项目。 MyUser.java类: package com.material.components; import com.google.gson.annotations.Expose; import com.google.gson.annotations.SerializedName; pu
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;
}
}
MyUserLocalStorage.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);
此外,如果我只是从用户对象打印一个特定项目,它会显示,但不能打印整个对象。您能显示错误日志吗?2019-11-02 22:46:22.232 2978-8699/?W/ErrorProcessor:onFatalError,处理来自引擎(4)com.google.android.apps.gsa.shared.speech.b.g的错误:从com.google.android.apps.gsa.staticplugins.microdetection.d.k.a(源文件:91)com.google.android.apps.gsa.staticplugins.d.l.run(未知源:14)的输入流读取错误位于com.google.android.libraries.gsa.runner.a.a.b(源文件:32)位于com.google.android.libraries.gsa.runner.a.c.call(未知源代码:4),因为stackoverflow不允许我粘贴整个错误。。。上面只给出了几行