网上有很多例子是关于activity传参给子fragment是通过tag来传递,其实还有一种方法,就是通过获取子fragment对象来操作
首先有一个FragmentActivity类:MainActivity,其继承FragmentActivity类
在MainActivity中监听到控件事件:其中sendMessageToFrame(int what)为MainActivity中方法
@Override
public void onClick(View v) {
switch(v.getId()){
case R.id.text_hotfarm:
sendMessageToFrame(HomePageActivity.HOTFARM);
break;
case R.id.text_myfarm:
sendMessageToFrame(HomePageActivity.MYFARM);
break;
default:
break;
}
}
sendMessageToFrame(int what)方法:
/**
* 传递消息给子fragment
* @param what
*/
private void sendMessageToFrame(int what){
HomePageActivity fragment = null;
List<Fragment> list = MainActivity.this.getSupportFragmentManager().getFragments();
for(Fragment fment : list){
if(fment instanceof HomePageActivity){
fragment = (HomePageActivity) fment;
}
}
Handler handler = fragment.getHandle();
handler.sendEmptyMessage(what);
}
再有子fragment类:HomePageActivity类,在该类中,需要声明Handler对象,初始化,并提供公共方法getHandle()方法:
public Handler getHandler(){
return mHandler;
}
至此,FragmentActivity便能通过handler对象传递消息给子fragment。
至于子fragment传递数据给FragmentActivity,是通过接口实现,具体实现方法,网上例子很多,就不在这里说了!