我有一个寻呼机片段活动:
I have Fragment activity with pager:
List<Fragment> fragments = new Vector<Fragment>();
fragments.add(Fragment.instantiate(this, PastEventListFragment.class.getName(),bundle));
fragments.add(Fragment.instantiate(this, EventListFragment.class.getName(),bundle));
this.mPagerAdapter = new EventPagerAdapter(super.getSupportFragmentManager(), fragments);
//
ViewPager pager = (ViewPager)super.findViewById(R.id.viewpager1);
pager.setAdapter(this.mPagerAdapter);
pager.setCurrentItem(1);
我赶上onKeyDown事件:
I catch onKeyDown event :
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_MENU) {
}
return super.onKeyDown(keyCode, event);
}
现在的问题是: 如何在所有碎片我已经实例化本次活动使用的事件。谢谢
The Question is: How to use event in all fragments i have instantiated in this activity . Thanks
你可以做的就是在你的片段类(S)定义了一个自定义的方法。例如:
What you can do is to define a custom method in your fragment class(s). For example:
public void myOnKeyDown(int key_code){
//do whatever you want here
}
和调用此方法,每当一个按键按下事件引发你的Activity类。例如:
and call this method whenever a key-down event is raised in your Activity class. For example:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_MENU) {
((PastEventListFragment)fragments.get(0)).myOnKeyDown(keyCode);
((EventListFragment)fragments.get(1)).myOnKeyDown(keyCode);
//and so on...
}
return super.onKeyDown(keyCode, event);
}