2014-04-23 29 views
0

..如何完成我是新到Android父活動

版本[2.2]

我創建了一個主要活動[A],在點擊一個按鈕,它關係到另一個活動[B]( 「此活動具有透明背景,所以主要活動[A]也可以查看」需要強制)。

一旦我點擊返回按鈕從活動[B]它應該去活動[A](或)活動[B]有一些按鈕,如果我點擊任何按鈕從活動[B]它應該去活動[C ]。

從活動[C]它點擊返回按鈕活動[A]是活的。

對於我來說,雖然點擊返回從活動[C]按鈕,我的應用程序應該是結束()......

plz幫助我。

回答

0

在你活動[C]將這個代碼 -

@Override 
public void onBackPressed() { 
Intent intent = new Intent(this, activity[c].class); 
          intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
          intent.putExtra("EXIT", true); 
          startActivity(intent); 
} 

,並在你的方法onCreate活動[C]將這個代碼 -

if (getIntent().getBooleanExtra("EXIT", false)) { 
      finish(); 
     } 
0

當調用意圖使用此代碼來殺死以前的活動

Intent i=new Intent(activity[a].this,activity[b].class); 
startActivity(i); 
activity[a].this.finish(); 

這個代碼幫助清除所有活動,例如:其明顯的活性[A]和活動[B]

Intent i = new Intent(activity[c].this,activity[a].class); 
     i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | 
       Intent.FLAG_ACTIVITY_CLEAR_TASK | 
       Intent.FLAG_ACTIVITY_NEW_TASK); 
      startActivity(i); 
0

創建活動爲您提供的時候,你必須創建活動A. 對於如的一個實例。 static A instanceA = this; 現在創建一個靜態方法getInstace()

public static A getInstance(){ 
     return instanceA; 
    } 
enter code here 

Now in Activity B on setonclicklistener 
write A.getInstance().finish(); //For Activity A 

而且還完成()//對於活動B

0

喜作下列修改一個接一個。要實現這個每個活動應該以startActivityForResult而不是startActivity開始。

  1. 在啓動A到B的過程中,您應該使用下面的代碼。

    startActivityForResult(new Intent(ActivityA.this,ActivityB.class),12);

  2. 雖然開始活動B到C你應該使用下面的代碼。

    startActivityForResult(new Intent(ActivityB.this,ActivityC.class),12);

添加下面的方法在所有三個活動。

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     super.onActivityResult(requestCode, resultCode, data);  
     if(resultCode==12){ 
       setResult(12);  
       this.finish(); 
     } 
} 

當您完成任何活動時添加代碼。 (如果您在活動A或B或C中單擊完成按鈕),然後在按鈕完成的onClick下方添加)。

setResult(12); 
ClassName.this.finish(); 

不使用onBackPressed和startActivity。它是處理這個問題的簡單方法。