2014-02-19 91 views
1

只是關於使用Fragment s和Activity s來處理android開發的常見問題:函數代碼的業務端是否將Fragment s動態加載到Activity中? (即一個片段的OnClickListener s,OnCheckedChangedListener s,按鈕邏輯方法...)把碎片的功能代碼放在哪裏?

他們是否在Fragment類或Activity類?

+0

片段...如果片段可以與其他片段交互,然後做一些交互的接口,並做控制器類實現此接口(爲簡單起見Activity可以是控制器),並在控制器中進行交互... Fx你有ListFragment與商品do接口方法goodSelected讓這個片段有方法setOnGoodSelected ...在片段onListSelected你可以調用goodSelected從接口...現在活動可以實現這個接口...所以一個 – Selvin

回答

1

這可能取決於多少功能的共同點,以及有多少,比方說按鈕,必須處理。

我個人(也可能是最常見的做法)分別處理onClick(...)事件Fragment,這意味着我讓每個片段實現它自己的OnClickListener

此外,通過Activity處理各種事情的時候,可能不是所有的反應成分點擊事件在內存中任何時候都可以通過findViewById(...)到達,這取決於當前顯示的片段,以及您的用戶界面一般建成。

2

所有連接到片段的視圖的GUI邏輯都應包含在片段本身內。

因此,片段應儘可能自包含。

儘管如此,您可以根據片段GUI交互對您的活動進行回調。這很容易做到這樣的片段裏面:

@Override 
public void onAttach(Activity activity) { 
    if (!(activity instanceof SherlockFragmentActivity)) { 
     throw new IllegalStateException(getClass().getSimpleName() 
       + " must be attached to a SherlockFragmentActivity."); 
    } 
    mActivity = (SherlockFragmentActivity) activity; 

    super.onAttach(activity); 
} 

在這種特定的情況下獲得對SherlockFragmentActivity參考的原因是爲了獲得對支持菜單吹氣mActivity.getSupportMenuInflater(),因此建設當然也可以用來從基礎活動中獲取信息。

0

它們總是在片段類中,因爲fragment是android中的一種類型的組件,我們可以重用它。如果我們在活動中放置onclick和oncheck,那麼重用該組件的含義是什麼?

更多瞭解請經過以下步驟:

Link 1對於有關片段基層和如何處理它們 Link 2用於處理多窗格片段

Standard site for fragment

0

這取決於:

如果片段可以處理自足的邏輯(完成),那麼該代碼可以由分段。例如點擊通話電話號碼。

如果片段具有其操作特定於活動的UI,則您希望在活動中添加偵聽器。 例如如電子郵件客戶端的主細節視圖,平板電腦用戶點擊標題片段1,其中包含電子郵件標題列表,然後點擊活動中的處理器可以在活動中顯示細節片段2。

在所有你想保持片段可重用。