Android fragment.getView()在反压后返回null
我试图在活动的附加Android fragment.getView()在反压后返回null,android,android-fragments,Android,Android Fragments,我试图在活动的附加片段下更改textview,因此我将attachedFragment存储为变量,如下代码所示 @Override public void onAttachFragment(android.support.v4.app.Fragment fragment) { super.onAttachFragment(fragment); attachedFragment = fragment; } 然后,当点击一个按钮时,我调用以
片段下更改textview
,因此我将attachedFragment
存储为变量,如下代码所示
@Override
public void onAttachFragment(android.support.v4.app.Fragment fragment) {
super.onAttachFragment(fragment);
attachedFragment = fragment;
}
然后,当点击一个按钮时,我调用以下代码
if(attachedFragment != null && attachedFragment.getView() != null)
{
TextView tvGender = (TextView) attachedFragment.getView().findViewById(R.id.tv_gender);
if(tvGender!=null)
tvGender.setText(R.string.title_step_one_gender);
}
当我开始活动时,它工作正常,直到我变成下一个片段并按下;attachedFragment.getView()
始终返回null
我的问题:
当第一次还行时,它怎么可能返回null
更改textview/任何其他控件的最佳解决方案是什么
碎片内?有很多碎片,我只需要
更改附加的片段
注意:以上所有代码都在主要活动下如果我误解了你的问题,请纠正我。听起来您的情况是,先附加片段A,然后附加片段B,然后按back,留下片段A。在本例中,attachedFragment只是一个变量,所以它继续指向B,但由于B现在已分离,因此它为空。按back不会用片段A重新填充变量attachedFragment
尝试使用findFragmentById或findFragmentByTag。查看此以了解更多信息 我想除了检查附件碎片之外null,您还应该确保attachedFragment.isDetached()也为false。