2015-12-09 52 views
0

我正在開發一個應用程序,其中MainActivity擴展了片段。這裏是我需要撥打onBackPressed的一些用法。我怎樣才能做到這一點?如何在Android中擴展Fragment的MainActivity中調用onBackPressed?

我用下面不工作

class MainActivity extends Freagment{ 
. 
. 
. 
. 

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

代碼前面的頁面就是這樣

class LoadWebData extends Activity 
{ 
. 
. 
. 
} 
+0

片段沒有'onBackPressed()'方法。 –

+0

我可以知道你想要做什麼嗎? – Rahul

+0

http://stackoverflow.com/questions/5448653/how-to-implement-onbackpressed-in-android-fragments – Ravin

回答

0

您可以添加特定的片段返回堆棧中通過調用addToBackStack方法。看看this的例子。

MyDetailFragment myDetailFragment = new MyDetailFragment(); 
myDetailFragment.setArguments(bundle); 
FragmentTransaction fragmentTransaction = 
getActivity().getFragmentManager().beginTransaction(); 
fragmentTransaction.replace(R.id.phone_container, myDetailFragment); 

/* 
* Add this transaction to the back stack. 
* This means that the transaction will be remembered after it is 
* committed, and will reverse its operation when later popped off 
* the stack. 
*/ 
fragmentTransaction.addToBackStack(null); 

fragmentTransaction.commit(); 
+0

u能提供的代碼片段PLZ – bala

+0

@bala編輯答案時後退按鈕。看到它 – slenderm4n

+0

好吧,我也編輯我的代碼...請看看它 – bala

0

片段不聽背按。我見過的一種常見模式是,在激活後按下時,與活動中的片段管理器進行交互以彈出片段....請參閱下面的代碼!

@Override 
public void onBackPressed() { 

final FragmentManager fragmentManager = getFragmentManager(); 
final int count = fm.getBackStackEntryCount(); 

if (count == 0) { 
    super.onBackPressed(); 
} else { 
    fm.popBackStack(); 
} 
} 
+0

對不起。它沒有幫助我 – bala

+0

爲了這個工作你的片段交易需要被添加到後臺堆棧。 – fergdev

+0

請你可以說怎麼做? – bala

相關問題