0

取得したアクティビティに応じて、onCreate()でさまざまな操作を実行したいと思います。

私はこれを作ることをします:

Activity A: 
   intent to activity B; 
   intent.putBoolean("name",boolean=false); 
   startActivity B.

Activity B: 
onCreate(){
   Boolean.getBoolean("name"); 
   if(boolean){
   }else{**make this**} 
on the other hand if click on a Button 
   onClick {starts activity C}.

Activity C: 
do things... 
-> if click on a Button -> 
onClick { 
   intent.putBoolean(boolean=true);
   starts ActivityB}

Activity B onCreate(){ 
   if(boolean){**make this**
   } else{}

私の質問:同じことをもっと良い方法で行うことはできますか?

ありがとう

4

1 に答える 1

0

Intent の putExtra 属性を使用して、現在のアクティビティを起動しているアクティビティの名前を渡すことができます。たとえば、アクティビティ A が C を呼び出している場合、呼び出し元のアクティビティで次のようにします。

    Intent intent = new Intent(this, C.class);
    intent.putExtra("activity","A");
    startActivity(intent);

アクティビティ C:

    Intent intent = getIntent();
    String activity = intent.getStringExtra("activity");

文字列アクティビティで A を取得すると、A から来ていることがわかります。B に対して同じことを行うと、アクティビティ文字列は B になります。

C が A または B 経由でしか起動できない場合は、これ以上対処する必要はありませんが、たとえば HOME から起動できる場合は、C で追加のチェックが必要になる場合があります。

于 2012-07-27T17:22:00.093 に答える