【发布时间】:2017-11-24 08:53:42
【问题描述】:
我有两个活动,即注册和登录,我在注册类中定义了一个共享首选项。在注册页面上,如果您单击将您从注册活动带到登录活动的按钮。我正在存储一个共享首选项值,以便在第二次启动应用程序时,让应用程序立即进入 LoginActivity,而不是打开第一个 Activity,即注册 Activity。这是我的名为 Session 的 SharedPreferences 类。
private SharedPreferences prefs;
public Session(Context cntx) {
// TODO Auto-generated constructor stub
prefs = PreferenceManager.getDefaultSharedPreferences(cntx);
}
public void setusename(String usename) {
SharedPreferences.Editor editor = prefs.edit();
editor.putString("username", usename).commit();
editor.commit();
public Boolean contKey(String key){
if (prefs.contains(key)){
return true;
}else{
return false;
}
}
这是 RegstrationActivity 中的按钮,用于在转到 LoginActivity 之前存储 SharedPreferences 值,以便在第二次启动时打开 LoginActivity 类
loginLink.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
session = new Session(getApplicationContext());
session.setusename("hello123");
Intent intent = new Intent(getApplication(),ActivityLogin.class);
startActivity(intent);
finish();
}
});
我在 RegistrationActivity 类的 onCreate 方法中定义了这个,以便在下次启动应用时切换到 ActivityLogin 屏幕
System.out.println("it got here...2");
try {
if (session.contKey("username")) {
System.out.println("it got here...");
Intent intent = new Intent(getApplication(), ActivityLogin.class);
startActivity(intent);
overridePendingTransition(R.anim.enter, R.anim.exit);
finish();
} else {
System.out.println("it got here...3");
Intent intent = new Intent(getApplication(), ActivityRegistration.class);
startActivity(intent);
finish();
overridePendingTransition(R.anim.enter, R.anim.exit);
}
}catch(Exception ex){
}
请问为什么我的共享首选项在第二次启动时没有切换到 LoginActivity。请帮忙
【问题讨论】: