2016-09-27 11 views
0

私は、アンドロイドプログラミングの中で、ナイスランチガイドを作成しています。このガイドでは、アクティビティ間でデータを渡す静的インテントメソッドを書いています。それの背後にある理由。なぜAndroidで静的インテントメソッドを使用するのですか

public static Intent newIntent(Context packageContext, boolean answerIsTrue){ 
    Intent i = new Intent(packageContext,CheatActivity.class); 
    i.putExtra(EXTRA_ANSWER_IS_TRUE,answerIsTrue); 
    return i; 
} 
+0

あなたの質問を編集し、あなたが理解していないコードを示す[mcve]を提供してください。 – CommonsWare

+0

@CommonsWare私は、この本に記載されているデモンストレーションコードの回答を更新しており、訂正のためにありがとうございます。 – Pheonix

+0

著者の目標について教えてください。 – greenapps

答えて

3

私はあなたが、彼は同じような機能を書き込ん意味と仮定している:それをする理由は、活動が動作すると、あなたが呼び出すことができ、単一の機能を持っている必要がどのようなパラメータを示すことです

public static Intent createIntent(param1, param2) { 
    Intent intent = new Intent(); 
    intent.putExtra(param1); 
    intent.putExtra(param2); 
    return intent; 
    } 

そのアクティビティのインテントを作成するのではなく、アプリでアクティビティを開始するダースの場所にそのロジックを複製する必要はありません。本自体から

0

このstaticメソッドは、私たちは適切CheatActivityが必要になりますエキストラで構成された意思を作成することができます。 answerIsTrue引数(ブール値)は、EXTRA_ANSWER_IS_TRUE定数を使用してプライベート名でインテントに入れられます。この値を一時的に抽出します。あなたのアクティビティのサブクラスにこのようなnewIntent(...)メソッドを使用すると、他のコードが起動インテントを適切に設定できるようになります。

0

私はあなたが、その後のパラメータが余分または何要求コードになるべきかを正確に指定するために展開することができ、「スターター」

public static void start(Context context) { 
    Intent starter = new Intent(context, SomeActivity.class); 
    starter.putExtra(EXTRA_SOME_EXTRA, "some_extra_String"); 
    context.startActivity(starter); 
} 

を入力すると、静的メソッドのAndroidスタジオが生成することを好みます。

public static void startForResult(Activity activity, String name, int requestCode) { 
    Intent starter = new Intent(activity, SomeActivity.class); 
    starter.putExtra(EXTRA_SOME_EXTRA, name); 
    activity.startActivityForResult(starter, requestCode); 
} 
関連する問題