我正在使用 com.slidingmenu.lib 库。
我的滑动菜单由一个片段表示。我正在努力查看滑动菜单中的片段如何与托管滑动菜单的活动进行通信。
这是如何运作的?我怀疑我需要某种形式的听众,但无法解决这个问题。
我正在使用 com.slidingmenu.lib 库。
我的滑动菜单由一个片段表示。我正在努力查看滑动菜单中的片段如何与托管滑动菜单的活动进行通信。
这是如何运作的?我怀疑我需要某种形式的听众,但无法解决这个问题。
您需要覆盖片段(slidingMenu)中的 onAttach() 方法并获取对其附加到的活动的引用。当您获得活动时,您应该向下转换对特定类的引用(扩展活动的活动的名称),以便能够调用您在活动中声明的任何公共方法。
例子:
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();
}
}
你可以通过
1)创建一个自定义的java接口,比如说InterfaceX,它可以具有特定于您的方法,Fragment
并Activity
实现该接口并在您的Activity中为该接口的方法提供定义。
2)将Activity
传入的onAttach()
(您需要覆盖片段onAttach()
方法)转换为InterfaceX。
3) 您可以使用它的全局引用变量调用 InterfaceX 的方法。
此处提供了完整的示例和示例代码。
祝你好运 :)
我在我的碎片上使用它;)
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);
滑动菜单和其他菜单一样是一个片段。
调用 getActivity 以获取对主机活动的引用。