2016-04-07 3 views
1

Открываю операцию B из Activity A, а затем из Activity B, открывая Activity C. Теперь, щелкнув назад с Activity C, он должен открыть активность B, если я нажму ok в Activity C, он должен идти Вернуться к Упражнение A.Как обрабатывать действия android

public class ActivityA extends ActionBarActivity 
{ 
    public void onCreate(Bundle savedInstanceState) 
    { 
    .... 
    } 

public void onClick(View v) 
{ 
    Intent intent = new Intent(this, ActivityB.class); 

    startActivityForResult(intent,100); 
} 

protected void onActivityResult(int requestCode, int resultCode, Intent data) 

{ 

    super.onActivityResult(requestCode, resultCode, data); 


    if(resultCode != RESULT_OK) 

    { 

     return; 

    } 


    if(requestCode == 100) 
    { 
     String val=data.getStringExtra(“result_str”); 
     .... 

    } 
} 
} 

public class ActivityB extends ActionBarActivity 
{ 
public void onCreate(Bundle savedInstanceState) 

{ 
    .... 
} 

public void onClick(View v) 
{ 
    Intent intent = new Intent(this, ActivityC.class); 

    startActivityForResult(intent,100); 
} 

protected void onActivityResult(int requestCode, int resultCode, Intent data) 

{ 

    super.onActivityResult(requestCode, resultCode, data); 


    if(resultCode != RESULT_OK) 

    { 

     return; 

    } 


    if(requestCode == 100) 
    { 
     Intent intent = new Intent(); 

     intent.putExtra(“result_str”,data.getStringExtra(“result_str”)); 
     intent.putExtra("val",val); 

     setResult(RESULT_OK, intent); 

     finish(); 
    } 
} 
} 

public class ActivityC extends ActionBarActivity 
{ 
public void onCreate(Bundle savedInstanceState) 

{ 
    .... 
} 

public void onClick(View v) 
{ 
    .... 
    Intent intent = new Intent(); 

    intent.putExtra(“result_str”,result) 

    setResult(RESULT_OK, intent); 

    finish(); 
    } 
} 

В этом случае я мог видеть, как исчезают два вида деятельности. Я не хочу видеть визуально визуальную работу. Как его реализовать?

+0

use intent.setFlags (Intent.FLAG_ACTIVITY_CLEAR_TOP); – Rgv

ответ

1
  1. Если нажать кнопку назад в актив- ности Ĉ просто закончить активность с он идет к деятельности Б.
  2. Если нажать кнопку ОК установить FLAG_ACTIVITY_CLEAR_TOP намерению и начать деятельность а и закончить активность с. Он заканчивает активность с и активностью B и переходит к деятельности А.
+0

Я не могу запустить ActivityA недавно из ActivityC, поскольку это зависит от значения ActivitiyB. Есть ли другой способ справиться с этим? – quest

+0

Если вы начинаете сначала, то удалите флаг FLAG_ACTIVITY_CLEAR_TOP. Завершите работу, начиная работу B или другую. При запуске Acitivty A снова из c просто добавьте параметры в намерение и прочитайте эти параметры в Acitivty A. –

0

ли ниже кода

вы хотите начать B от А затем написать ниже кода в деятельности в любом клике мета или событии.

Intent i = new Intent(this, B.class); 
startActivity(i); 
finish(); 

Теперь вам нужно открыть C-активность из B, а затем использовать как использовать код выше кода.

Intent i = new Intent(this, C.class); 
startActivity(i); 
finish(); 

В настоящее время открыто действие B на активность С в режиме «Назад» и «Вкл.» Время открытия кнопки «Актив».

Здесь код для открытия. Активация от C при нажатии кнопки ОК.

 Intent i = new Intent(this, A.class); 
    startActivity(i); 
    finish(); 

и ниже код напишите на onBack нажмите кнопку из действия C и откройте действие B.

@Override 
    public void onBackPressed() { 
    super.onBackPressed(); 

    Intent i = new Intent(this, B.class); 
    startActivity(i); 
    } 
0

Теперь при нажатии кнопки назад от C активность, он должен открыть активность B

В вашем AndroidManifest.xml

<activity 
    android:name=".C" 
    android:label="Activity C" 
    android:parentActivityName=".B"> 

    <meta-data 
    android:name="android.support.PARENT_ACTIVITY" 
    android:value=".B"/> 
</activity> 

если я нажимаю ОК в деятельности C он должен вернуться к мероприятию A

ok.setOnClickListener(new View.OnClickListener(){ 

    public void onClick(View view){ 
    Intent intent = new Intent(ActivityC.this,ActivityA.class); 
    startActivity(intent); 
    } 
}); 
Смежные вопросы