我希望登录活动在用户启动应用但尚未登录之前启动。如果之前已成功完成登录,则应用程序将跳过登录页面并移至MainMenu.java。 我现在拥有的是:
public class Login extends Activity implements OnClickListener, TaskCompleteCallback{
first_time_check();
...
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.configure);
...}
private boolean first_time_check() {
String first = mPreferences.getString("first", null);
if((first == null)){
Intent i = new Intent(Login.this, MainMenu.class);
startActivity(i);
}
return false;
}
...
SharedPreferences.Editor editor = mPreferences.edit();
editor.putString("first", value);
...
editor.commit();
// Close the activity
Intent i = new Intent(Login.this, MainMenu.class);
startActivity(i);
}
但是我得到了FC。我是如何实现SharedPreferences的?
答案 0 :(得分:14)
您的代码从不调用first_time_check()
,因此在返回用户的情况下自动转发不起作用。
你可以在onCreate()
做
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
first_time_check();
setContentView(R.layout.configure);
...}
因此,对于新用户,first_time_check()
会将他转发到登录页面,否则
将显示当前布局,他可以继续在此页面上。
答案 1 :(得分:5)
您正在使用共享偏好设置。那很好。
此链接中有一个小例子。这可能会解决问题。
http://developer.android.com/guide/topics/data/data-storage.html
基本上,我没有看到你读过储值。您正在存储它然后提交它。但是没有代码在哪里阅读它。只有在您阅读它时,您才能决定必须启动哪个活动。你必须调用first_time_check()来解决这个问题。
希望我能帮到你。
答案 2 :(得分:1)
您可以在onSaveInstanceState()方法中保存日志详细信息,然后在活动重新启动时将其还原。例如在onRestore()内部。
答案 3 :(得分:1)
这可以通过两种方式完成。一种是将它们存储在全局变量中,二是将数据存储在共享首选项中。见this示例。