2012-03-13 9 views
0

Androidプロジェクトでコードサイズを小さくするロジックを作成する必要があります。私はアクティビティCを持っています。アクティビティCには値が "Hello"のTextViewがあります。アクティビティA & Bが2つあります。今、ボタンClickのアクティビティAがアクティビティCを呼び出す場合、TextViewの値は「あなたはどうですか?」に変更する必要があります。アクティビティBがアクティビティCを呼び出すと、TextViewの値は「私は大丈夫」になります。最初のアクティビティを呼び出す異なるアクティビティに応じて、アクティビティのTextViewの値を変更する方法はありますか?

私の質問は、どのアクティビティがアクティビティCを呼び出しているかを検出し、それに応じて実行時にTextViewのテキストを変更する方法です。

何か助けていただければ幸いです。

答えて

2

他の返信に加えて。メッセージのテキストのみを送信し、アクティビティCで条件付きチェックを取り除くことができます。活動Cの

呼び出し:

Intent i = new Intent(this, ActivityC.class); 
i.putExtra(ActivityC.MESSAGE_KEY, "How are you?"); 
startActivity(i); 

または

Intent i = new Intent(this, ActivityC.class); 
i.putExtra(ActivityC.MESSAGE_KEY, "I am fine"); 
startActivity(i); 

そしてActivityC中:

public final static String MESSAGE_KEY = "com.package.name.ActivityC.message"; 

@Override 
protected void onCreate() { 
    ... 
    String message = getIntent().getStringExtra(MESSAGE_KEY); 
    if (message != null) { 
     textView.setText(message); 
    } 
    ... 
} 
0

uは、呼び出し側のアクティビティに、呼び出し側のアクティビティの名前を含むインテントとともにバンドルを送信させることができます。

呼び出されたアクティビティは、バンドルの内容を読み取って、どのアクティビティが呼び出されたかを知り、それに応じてデータを表示することができます。

0

あなたのインテントと一緒にエクストラアクティビティを送信することができます。

add intent.PutExtra("VARIABLE NAME","called from A"); 

から呼び出されて

String calledFrom = getIntent().getStringExtra("VARIABLE NAME"); 

あなたがチェックすることができますして、アクティビティCでこの変数の値を得ることができる場合、あなたはB

add intent.PutExtra("VARIABLE NAME","called from B"); 

からそれを呼び出すときと同様に

呼び出された場所からのcalledFrom文字列値。

0

意向が2つのparamsがかかるのであなたは、このような

Intent intent = new Intent(A.this,C.class); 

などのアクティビティ

の間でデータを渡すことができ 意図にrefreingコンテキストおよびクラス)startActivityを(クラス分けbefor活動 始めました。この方法は、ちょうどあなたがこのC活性を呼び出している誰が処理できるように、活動のCにいくつかのデータを送信する必要があるCの活動に

Intent intent = getIntent(); 
if (intent.getExtra("src").equals("1")) 
textView.setText("how are you?") 
else if (intent.getExtra("src").equals("2")) 
textView.setText("fine thanks") 
0

をクラスに

intent.putExtra("src",1); 

を参照のうえ整数を追加します。

Intent i = new Intent(this , C.class); 
i.putExras("from" , "a"); 
startActivity(i); 

Intent i = new Intent(this , C.class); 
i.putExras("from" , "b"); 
startActivity(i); 

アクティビティCでは、これらの値を読み、次のようにチェックする必要があります。

onCreate(){ 

String from = getIntent().getStringExtras("from"); 

if(from.equals("a")){ 
//came from a 
} else if(from.equals("b")){ 
//came from b 
} 

} 
関連する問題