当我调用getView时,我不知道为什么在我的片段中它返回NULL。
我知道调用getView 只需 执行 onCreateView方法后
我调试了我的应用程序:我检查了第一个被称为onCreateView方法
所以我不知道问题出在哪里。
我告诉你我的代码:
这是我的主要活动,当用户点击抽屉菜单时,我会检查菜单的哪个语音被按下:
public void onNavigationDrawerItemSelected(int position) {
...
if (position == 7) {
CreaVotoFragment fragment = CreaVotoFragment.newInstance(position + 1);
FragmentManager fragmentManager = getFragmentManager();
fragmentManager.beginTransaction()
.replace(R.id.container, fragment)
.commit();
//Mostra un Dialog che consente l'eliminazione di un corso
fragment.createMark(this);
}
...
}
在这种情况下,用户按下语音菜单编号7,因此在此块中我创建了一个新的
片段,用静态方法newIstance。
这是方法:
public static CreaVotoFragment newInstance(int sectionNumber) {
CreaVotoFragment fragment = new CreaVotoFragment();
Bundle args = new Bundle();
args.putInt(ARG_SECTION_NUMBER, sectionNumber);
fragment.setArguments(args);
return fragment;
}
之后我只是将片段赋予方法:replace。
它工作,我也可以看到他在CreaVotoFragment类中调用onCreateView方法覆盖。
当我使用createMark方法(if块的最后一行)调用时问题开始。
在createMark方法内部,当我调用getView时,返回给我一个空指针。
答案 0 :(得分:2)
您应该注意到commit()
将在Handler.post()
上运行。这意味着您的片段视图将在onNavigationDrawerItemSelected
之后创建。
如果从内部片段调用与视图相关的方法来约束视图的生命周期,那就更好了。