2015-09-17 104 views
2

我有一個註冊活動,也是一項主要活動。更改AndroidManifest.xml以基於共享首選項設置LAUNCHER活動

我想達到的目標:

我想:

1)顯示了註冊活動,如果用戶還沒有註冊

2)如果用戶表現出的主要活動已註冊

我做了什麼:

1)我改變了註冊活動要在Android.Manifest.xml文件主/發射活動:

<activity 
     android:name=".MainActivity" 
     android:label="@string/app_name" > 
    </activity> 
    <activity 
     android:name=".RegistrationActivity" 
     android:label="@string/app_name" > 

     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 

問題:

1)如何設置的主要活動的啓動活動後的註冊按鈕是按下後續應用程序啓動?

public void btnRegisterPressed (View view) { 

     // Save isRegistered flag into Shared Preferences 
     SharedPreferences userDetails = this.getSharedPreferences("userDetails", MODE_PRIVATE); 
     SharedPreferences.Editor edit = userDetails.edit(); 
     edit.clear(); 
     edit.putBoolean("isRegistered", true); 

     Intent i = new Intent(this,MainActivity.class); 
     i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK); 
     i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     startActivity(i); 
} 
+0

所以要設置主要爲默認開始說起?除了設置主用戶還有什麼其他選項? –

+0

使用飛濺或發射屏幕 – 3xplore

+0

哦,對不起,重新讀你的問題,我可以做到 –

回答

1

如果您不想讓它們落入當前的主體中,您需要爲該應用創建一個登錄頁面並使其運行。所以run方法是主要的方法。

我更願意將我的共享首選項保留爲我的應用的常量。

pref = getSharedPreferences(MyConstants.MY_APP); 
    editor = pref.edit(); 



public void run(View view) { 
    String getStatus = pref.getString(MyConstants.REGISTER, "nil"); 
    if (getStatus.equals("true")) { 
     startActivity(new Intent(this, Main.class)); 
    } else { 
     Toast.makeText(this, "Register first", 
       Toast.LENGTH_SHORT).show(); 
    } 
} 

在您的註冊類:

editor.putString(MyConstants.REGISTER, "true"); 
    editor.commit(); 
+0

注意:如果您願意,其他人可以直接進入註冊頁面,不論有沒有吐司消息。 –

+1

謝謝。得到它了! – user1872384