2013-04-10 46 views
0

導航到母體片段活性的我的應用程序的主要片段的活性具有以下功能的Android從內片段

private final void insertFragmentIntoView(final SherlockFragment fragment, 
      String tag) { 
     FragmentManager fm = getSupportFragmentManager(); 
     FragmentTransaction ft = fm.beginTransaction(); 
     ft.add(R.id.fragment_content, fragment, tag); 
     ft.commit(); 
    } 

R.id.fragment_content是幀佈局和我基本上插入新的片段插入到該幀中。現在我插入的框架有一個按鈕,應該把我帶到一個新的屏幕上。我想要的是,我的應用程序中的所有導航應該發生在我的FragmentActivity中。我怎樣才能從一個孩子的片段調用我的FragmentActivity?

親切的問候

回答

-1

使用監聽器是碎片和你的活動之間進行通信的推薦方式。

查看此Android documentation section的信息。長話短說,他們只是通過Activity類實現一個監聽器接口,並將getActivity()結果轉換爲一個監聽器的片段。

從我個人的經驗,這是非常方便,因爲可以讓你:

Easilly切換基本活動(例如你的主機的兼容性在包裝活動的全片段預3.0和11舉辦這個片段與人相處+) 輕鬆控制包裝活動是否支持回調。只是檢查它是否實現了監聽器,如果沒有,則執行特定於您的應用程序的操作。

+1

監聽器使用接口實現。或者它只是一個評論,炫耀你知道的東西?你有沒有在downvoting之前查看提供的url?如此無知 – EvilDuck 2013-04-10 08:08:07

+0

是的,繼續炫耀你是多麼「聰明」,而不是回答問題和幫助某人。從來沒有想過這樣的人存在,所以這不是YouTube。 – EvilDuck 2013-04-10 08:31:53

+0

好吧,從你最後的評論來看,看起來我正在和一個試圖在這裏炫耀的幼稚孩子聊天。當你無話可說時,挑剔的話是最好的選擇。所以不值得。至少我現在知道我應該避免使用哪家公司的軟件。 – EvilDuck 2013-04-10 08:58:17

0

在您的片段中創建一個偵聽器類,並且您的父活動將實現該偵聽器。 現在在您的片段中註冊監聽器並調用您想要執行某個操作的方法。 更多你可以看到這個鏈接http://developer.android.com/training/basics/fragments/communicating.html

示例如何片段和活動溝通。

class MyFragment extends Fragment{ 

class interface MyFragmentListener { 
doSomeAction(); 
} 


MyFragmentListener myListener; 
onAttach(){ 
myListener=(MainActivity)getActivity(); 
} 


onButtonClick(){ 
myListener.doSomeAction(); 
} 


} 

class MainActivity extends FragmentActivity implements MyFragment.MyFragmentListener 
{ 

doSomeAction(){ 

//TODO perform some action from your fragment to activity 
} 

}