使用sharedPreference登录检查android

时间:2018-01-26 03:17:03

标签: android sharedpreferences android-sharedpreferences

Goodday,我正在尝试使用我的应用创建登录和注销。这就是我所做的,在我的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:无法启动活动   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();
}

2 个答案:

答案 0 :(得分:2)

onCreate方法中的代码更改为

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

答案 1 :(得分:0)

将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;
    }