只是關於使用Fragment
s和Activity
s來處理android開發的常見問題:函數代碼的業務端是否將Fragment
s動態加載到Activity中? (即一個片段的OnClickListener
s,OnCheckedChangedListener
s,按鈕邏輯方法...)把碎片的功能代碼放在哪裏?
他們是否在Fragment
類或Activity
類?
只是關於使用Fragment
s和Activity
s來處理android開發的常見問題:函數代碼的業務端是否將Fragment
s動態加載到Activity中? (即一個片段的OnClickListener
s,OnCheckedChangedListener
s,按鈕邏輯方法...)把碎片的功能代碼放在哪裏?
他們是否在Fragment
類或Activity
類?
這可能取決於多少功能的共同點,以及有多少,比方說按鈕,必須處理。
我個人(也可能是最常見的做法)分別處理onClick(...)
事件Fragment
,這意味着我讓每個片段實現它自己的OnClickListener
。
此外,通過Activity
處理各種事情的時候,可能不是所有的反應成分點擊事件在內存中任何時候都可以通過findViewById(...)
到達,這取決於當前顯示的片段,以及您的用戶界面一般建成。
所有連接到片段的視圖的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()
,因此建設當然也可以用來從基礎活動中獲取信息。
這取決於:
如果片段可以處理自足的邏輯(完成),那麼該代碼可以由分段。例如點擊通話電話號碼。
如果片段具有其操作特定於活動的UI,則您希望在活動中添加偵聽器。 例如如電子郵件客戶端的主細節視圖,平板電腦用戶點擊標題片段1,其中包含電子郵件標題列表,然後點擊活動中的處理器可以在活動中顯示細節片段2。
在所有你想保持片段可重用。
片段...如果片段可以與其他片段交互,然後做一些交互的接口,並做控制器類實現此接口(爲簡單起見Activity可以是控制器),並在控制器中進行交互... Fx你有ListFragment與商品do接口方法goodSelected讓這個片段有方法setOnGoodSelected ...在片段onListSelected你可以調用goodSelected從接口...現在活動可以實現這個接口...所以一個 – Selvin