2012-07-26 44 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(); 
} 
} 
相關問題