2011-12-29 140 views
3

在AActivity中,當button1按下時,然後調用BActivity。返回不按「返回」按鈕

Button b1= (Button)findViewById(R.id.button1); 
b1.setOnClickListener(new OnClickListener() { 
@Override 
public void onClick(View v) { 
Intent intent = new Intent(); 
intent.setClass(AActivity.this, BActivity.class); 
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(intent); 
} 
}); 

在BActivity中,我希望當按鈕2按下時,然後調用AActivity。

Button b2= (Button)findViewById(R.id.button2); 
b2.setOnClickListener(new OnClickListener() { 
@Override 
public void onClick(View v) { 
//How to do? 
} 
}); 

我想要沒有按下鍵盤上的「後退」按鈕。 並用佈局中的按鈕替換。 我該怎麼辦?

當回調到AActivity時,是否可以運行onCreate()方法?

回答

7

只有你必須通過調用finish()方法來完成活動

示例代碼

Button b2= (Button)findViewById(R.id.button2); 
b2.setOnClickListener(new OnClickListener() { 
@Override 
public void onClick(View v) { 
finish(); 
} 
}); 
+0

我不認爲這是處理onBackPress的好方法。它只適用於活動堆棧,並非全部,就像片段!在這種情況下,您應該使用 – 2012-03-22 09:00:53

+1

'FragmentManager ft = getSupportFragmentManager();' 'ft.popBackStackImmediate();' – 2012-03-22 09:06:53

1
Button b2 = (Button) findViewById(R.id.button2); 
b2.setOnClickListener(new OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     Intent intent = new Intent(); 
     intent.setClass(BActivity.this, AActivity.class); 
     intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
     startActivity(intent); 
    } 
}); 
3

也許只是在您的活動中致電finish()

2

在BUTTON2的onclick()方法,你可以只是把

finish(); 

,或者你可以指定與AActivity.class新意圖爲目標。

3

你會得到通過這個簡單的代碼「返回」按鈕的功能:)至於後退按鈕在手機上正在完成導致活動堆棧上的以前活動再次開始的當前活動。

Button b2= (Button)findViewById(R.id.button2); 
b2.setOnClickListener(new OnClickListener() { 
@Override 
public void onClick(View v) { 
finish(); 
} 
});