2013-02-23 42 views
0

基本上,我有一個細節片段列表,每個代表該手機的同伴列表。當點擊其中一個DeviceDetails時,會出現一個按鈕和文本選擇。出現哪些按鈕和文本取決於手機的狀態;它要麼連接到正在使用的電話,要麼可用於連接。哪個方法處理碎片UI的外觀變化?

我目前使用片段的onCreateView使3個按鈕出現。這些按鈕中的1個應該每次出現,其他2個按照連接/可用狀態交替出現。

我想弄清楚哪個重寫的片段方法應該處理不斷變化的用戶界面。它應該只是if語句(或者可能是switch語句?)的一種情況,但我不確定將這些語句放在哪裏?

回答

1

那麼假設你有一個活動,它承載所有這些片段。

我認爲有一些事件觸發此狀態下發生的,也許在活動

public void onSomeEventThatICareAbout(EventDetails deets) { 
    Fragment fragment = getFragmentManager().findFragmentById(R.id.my_fragment_with_buttons); 
    if (fragment != null) { 
     ((MyButtonsFragment)).disableButtons(deets); 
    } 
} 

基本上只是像對待基於像正常事件的任何其他組件和調用方法的片段,無論是是一個onClick(),一個AsyncTask回調,或其他。只需在片段上調用該函數即可。

定義您的片段做你想做的自己的路,

public void disableButtons(EventDetails deets) { 
    View view = getView(); 
    view.findViewById(R.id.button1).setEnabled(false); 
    view.findViewById(R.id.button2).setEnabled(false); 
} 
+0

人,仍然有一個艱難的時間讓我的頭周圍。我是否認爲只創建了一個Detail Fragment,我必須根據從List Fragment中選擇哪一個來更改它? – Chucky 2013-02-23 18:05:27

+0

解決了它。謝謝。它只需要根據device.status在我的DetailFragment的showDetails方法中使用一些switch語句。 – Chucky 2013-02-23 19:05:17