2011-02-05 14 views
3

私はAndroidから始めています。私は何かが足りないと思っています。 Androidのように、開発時にあなたのアプリケーションに最初に表示されるアクティビティが決まるようです。私は、集中コントローラのいくつかの種類の実行を開始し、それは活性が(例えば、どこから得られたいくつかのデータに基づいて)最初 なければならないかを決定するように自分のアプリケーションを記述したいデータに基づいて実行時に最初のアクティビティを選択する方法はありますか?

れますそうすることができます、もしそうなら、どうですか?ありがとう。

答えて

6

ほとんどの人は、必要な設定を選択して「実際」のアクティビティを起動するアクティビティを起動することでそれを行います。 1つ目の問題は、最初に起動されたアクティビティがタスクスタック上にあることですが、最初のアクティビティに対してandroid:noHistory = "true"を設定すると、そのプロセスはユーザには見えなくなります。

2

これはなんでこんなに厳しいですか?メインアクティビティのビューコンテンツを設定せずに別のアクティビティを開始するデータをチェックした後に、onCreateメソッドのメインアクティビティに追加します。

3

以下の方法は、最初のアプリの起動時にチュートリアル画面を表示するために使用できます。

のAndroidManifest.xml

<activity android:name=".activities.LaunchActivity" 
    android:noHistory="true" 
    android:theme="@android:style/Theme.NoDisplay"> 
    <intent-filter> 
     <action android:name="android.intent.action.MAIN" /> 
     <category android:name="android.intent.category.LAUNCHER" /> 
    </intent-filter> 
</activity> 

<activity android:name=".onboarding.OnboardingActivity"/> 

<activity android:name=".activities.MainActivity"/> 

LaunchActivity.javaは:

public class LaunchActivity extends Activity { 

    public static final String FIRST_APP_LAUNCH = "com.your.package.name"; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     if (isFirstAppLaunch()) { 
      setFirstAppLaunch(false); 
      startActivity(new Intent(this, OnboardingActivity.class)); 
     } else { 
      startActivity(new Intent(this, MainActivity.class)); 
     } 

     finish(); 
    } 

    private boolean isFirstAppLaunch() { 
     SharedPreferences preferences = this.getPreferences(Context.MODE_PRIVATE); 
     return preferences.getBoolean(FIRST_APP_LAUNCH, true); 
    } 

    private void setFirstAppLaunch(boolean value) { 
     SharedPreferences preferences = this.getPreferences(Context.MODE_PRIVATE); 
     SharedPreferences.Editor editor = preferences.edit(); 
     editor.putBoolean(FIRST_APP_LAUNCH, value); 
     editor.apply(); 
    } 
} 
+0

私のアプリでそれをテストし、それが動作します! – RominaV

関連する問題