2012-07-26 83 views
2

问题我想在安装时注册我的应用程序?

  1. 将做登记活动将只显示一次
  2. 注册之后,控制应该移动到 下一个主要活动

我用下面的代码

以下代码不符合我的要求?

任何帮助将不胜感激!

在注册活动代码

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); 
    SharedPreferences.Editor editor=prefs.edit(); 
    editor.putBoolean("registration", true); 
    editor.commit(); 

守则主要活动

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); 
    boolean regComplete =prefs.getBoolean("registration", false); 
    SharedPreferences.Editor editor =prefs.edit(); 
    editor.putBoolean("registration", false); 

    editor.commit(); 

    if(regComplete) 
    { 
     startActivity(new Intent(this, SecureXActivity.class)); 
    } else 
    { 
     startActivity(new Intent(this, LoginActivity.class)); 

    } 

回答

3

只要把你的注册码在SecureXActivity.class

setContentView()前检查登记,如果它不那么做开始LoginActivity .class

和登记完整的把这些代码后LoginActivity.class

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); 
SharedPreferences.Editor editor=prefs.edit(); 
editor.putBoolean("registration", true); 
editor.commit(); 

如果你使用这种方法,那么我认为你不需要Main Activity class ..

并记住这一切的东西在时间内完成您的应用程序的第一次运行不在安装时。

+0

也'SecureXActivity.class'是你的**主要发射活动** ... – user370305 2012-07-26 13:21:18

+1

这应该有效。主要问题(在OP的原始代码中)是在Main Activity中,程序开始的地方(每次运行),注册设置为false。每一次。这样,每次程序重新运行时,用户都必须注册。 – Jochem 2012-07-26 13:21:49

+0

@Jochem - 在OP的代码。如果注册没有完成,OP将启动一个'LoginActivity',注册代码在'RegistrationActivity'中。 – user370305 2012-07-26 13:37:12

1

的报名活动应该是这样的:

public class RegistrationActivity extends Activity { 

    public static SharedPreferences pref; 
    public static final String PREFS_NAME = "MyPrefsFile"; 

    public void onCreate(Bundle savedInstanceState) { 

      pref = getSharedPreferences(PREFS_NAME, 0); 
         boolean regComplete =prefs.getBoolean("registration", false); 
         if(regComplete){ 
         //go to main class 
         }else{ 
         //stay in the registration class 
         } 
} 
} 

和主类应该是:

public class MainActivity extends Activity { 

    public void onCreate(Bundle savedInstanceState) { 

    RegistrationActivity.pref = getSharedPreferences(PREFS_NAME, 0); 
    SharedPreferences.Editor editor = settings.edit(); 

    editor.putBoolean("registration", true); 
     // Commit the edits! 
    editor.commit(); 
} 
} 
相关问题