使用 sharedPreference 登录检查 android

Login check android with sharedPreference

你好,我正在尝试使用我的应用程序创建登录和注销。这是我所做的,在我的 login activity 我添加这个

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.login_layout);

    String Username = new SessionHandler().getUsername(this);
        if(!Username.toString().equals("")){
            Intent mainIntent = new Intent(Login_activity.this,MainActivity.class);
            startActivity(mainIntent);
        }
}

这是我的 SessionHandler().getUsername()

  public String getUsername(Context context){
        sess_content = context.getSharedPreferences("LoginInfo", Context.MODE_PRIVATE); //1
        Username = sess_content.getString("Username", null); //2
        return Username;
    }

所以,这是问题所在,当我已经登录时我可以通过 login activity 并打开 main activity 但是当我注销然后尝试再次打开我的应用程序时。我收到一个错误。

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.boby.helpdesk/com.example.boby.helpdesk.Login_activity}: java.lang.NullPointerException

这就是我设置 SharedPreferences

的方式
public  void setSession(String name,String notelp,String alamat,String deskripsi,Context context){
    SharedPreferences.Editor editor = context.getSharedPreferences("LoginInfo", MODE_PRIVATE).edit();
    editor.putString("Username", name);
    editor.putString("NoTelp", notelp);
    editor.putString("Alamat", alamat);
    editor.putString("Deskripsi", deskripsi);
    editor.apply();
}

onCreate 方法中的代码更改为以下

String Username = new SessionHandler().getUsername(this);
        if(Username != null && !Username.isEmpty()){
            Intent mainIntent = new Intent(Login_activity.this,MainActivity.class);
            startActivity(mainIntent);
        }

将 null 更改为空或 @rajan ks:

public String getUsername(Context context){
        sess_content = context.getSharedPreferences("LoginInfo", Context.MODE_PRIVATE); //1
        Username = sess_content.getString("Username", ""); //2
        return Username;
    }