当前位置: 代码迷 >> Android >> Activity里边获取Fragment出错
  详细解决方案

Activity里边获取Fragment出错

热度:100   发布时间:2016-04-28 05:02:26.0
Activity里面获取Fragment出错
学习Android中,在Activity里面有一个Fragment,UI组件都在Fragment里面,现在在Activity的 onActivityResult() 想获取这个Fragment,然后调用Fragment里面的方法,结果获取不到这个Fragment


protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == TIME_ENTRY_REQUEST_CODE) {
if (resultCode == RESULT_OK) {
String notes = data.getStringExtra("notes");
String time = data.getStringExtra("time");

FragmentManager fragmentManager = getSupportFragmentManager();
TimeTrackerFragment ttFragment = (TimeTrackerFragment)fragmentManager.findFragmentById(R.id.fragment_tracker);
if (ttFragment == null)
Log.d("debug", "onActivityResult: ttFragment is null");
else
Log.d("debug", "onActivityResult: ttFragment is not null");
ttFragment.adapter.addTimeRecord(time, notes);
ttFragment.adapter.notifyDataSetChanged();
}
}
}


在这里会打印出"onActivityResult: ttFragment is null"出来,麻烦大家帮看看,谢谢!
------解决方案--------------------
改为fragmentManager = getFragmentManager();试试
getFragmentManager()是获取Android.app.FragmentManager的,getSupportFragmentManager()是获取 android.support.v4.app.FragmentManager的,你看看你是属于哪一种fragmentmanager
------解决方案--------------------
给Fragment加个tag,查找的时候用findFragmentByTag
  相关解决方案