2013-02-23 40 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