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();
}
答案 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;
}