2016-05-04 8 views
1

最初に変数の値をチェックし、この値に基づいてアクティビティAまたはアクティビティBを開始するアプリケーションを開発したい変数で1つのアクティビティまたは別のベースを開始するための最良の方法

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_limitation); 

    varChecker = new VarChecker(this); 

    if(varChecker.getRemainingUses() <= 0){ 
     limitReached(); 
    } else if(varChecker.isFirstTime()){ 
     firstTime(); 
    } else { 
     startMainActivity(); 
    } 
} 

これが初めてアプリケーションシートを示されなければならない活動である:私はこれは私が現在実装されている方法である

をやって何

protectec void onCreate(...){ 
    boolean b = checkVariable(); 

    if(b){ 
     startActivityA(); 
    } else { 
     startActivityb(); 
    } 
} 

イオンが実行される。そうでない場合は、getRemainingUses()の結果に応じて、アクティビティAまたはアクティビティBを自動的に開始する必要があります。

質問

は、私が欲しいものを行うにはどのような方法は、特別にsuper.onCreate(savedInstanceState)setContentView(R.layout.activity_limitation)を避けるために、新しいアクティビティを作成する必要がなく、ありますか?

+1

あなたは(super.onCreateを(スキップすることが可能である場合、私は知らない)が、あなたはsetContentViewを(スキップ)と仕上げを呼び出すことができます –

+1

を交換することになっているフラグメントを使用する必要があります)と、 2回目のアクティビティを開始した後に戻ります。 –

+0

1つのアクティビティのみを取り、計算に基づいて、このアクティビティにフラグメントを追加します。アクティビティー・フラグメントは、アクティビティーがこのアクティビティーを実行しないという意味で、アクティビティー・アクティビティーより優れています。 –

答えて

0

super.onCreate(savedInstanceState) とsetContentView(R.layout.activity_limitation)を避けるために特別に、新しい 活動を作成する必要がなく、私がやりたいする方法はありますか?

私は以前も同様の問題がありました。私が知る限り、super.onCreate(savedInstance)setContentView(R.layout.activity_limitation)を避けることはできません。 Androidのアクティビティのデザインです。あなたは、例えばによって適切なアクティビティを選択したい場合は

  1. は、私は、次の可能な解決策を参照してください ボタンをクリックすると、 変数に基づく新しいインテントを作成するだけで問題はありません。

  2. でアクティビティを選択したい場合は、フローの瞬間が異なります。アプリケーションの間にすることができます開始:
    • 、二つのオプションのための単一のアクティビティを作成するフラグメントを使用すると、空のレイアウトを持つ「ダミー」活動を作成する意図を作成し、上基づか適切なアクティビティに切り替え
    • 、それらの間を切り替えます変数とダミーアクティビティを終了します。この解決策は一種の回避策であり、何かをより良く理解するためには時間を費やす価値があることに注意してください。ただし、そのような使用例に対して推奨される解決策があるかどうかはわかりません。
代わりに活動の
関連する問題