2013-05-07 66 views
1

我正在使用com.slidingmenu.lib库。Slidingmenu使用片段

我有我的滑动菜单代表片段。我正在努力查看滑动菜单中的片段如何与托管滑动菜单的活动进行通信。

这是如何工作的?我怀疑我需要某种形式的听众,但不能解决这个问题。

+0

片段是fragmentactivity.so的一部分ü可以使它们与各通信other.so善意地究竟是什么ü要执行? – 2013-05-07 20:25:44

回答

0

滑动菜单与其他任何片段一样。

调用getActivity以获取对主机活动的引用。

0

您可以通过

1)创建一个自定义的Java接口让说InterfaceX它可以针对您的Fragment方法和制作Activity,以实现该接口,并在你的活动,接口方法的定义实现这一目标。

2)将传入onAttach()(您需要覆盖片段onAttach()方法)的Activity转换为InterfaceX。

3)您可以使用它的全局引用变量调用InterfaceX的方法。

提供了一个完整的示例和示例代码here

祝你好运:)

0

我用这对我fragmet;)

getActivity().setContentView(R.layout.main); 
SlidingMenu menu = new SlidingMenu(getActivity()); 
menu.setMode(SlidingMenu.LEFT); 
menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN); 
menu.setShadowWidthRes(R.dimen.shadow_width); 
menu.setShadowDrawable(R.drawable.shadow); 
menu.setBehindOffsetRes(R.dimen.slidingmenu_offset); 
menu.setFadeDegree(0.35f); 
menu.attachToActivity(getActivity(), SlidingMenu.SLIDING_CONTENT); 
menu.setMenu(R.layout.menu); 
0

你需要覆盖的方法onAttach()在你的片段(该slidingMenu),并获得参照它所附的活动。当你得到这个活动的时候,你应该向下引用你的特定类(扩展活动的活动的名称),以便能够调用你在活动中声明的任何公共方法。

例子:

public class MyActivity extends Activity{ 
    // This activity has the sliding menu attached 

    public void methodX(){// Do your stuff} 
} 

class MyFragment extends Fragment{ 

    MyActivity parent; 
    @Overide 
    public void onAttach(Activity a){ 
     super.onAttach(a) 
     parent = (MyActivity) a; 
     a.methodX(); 
    } 
}