fragment.getView()在反向后返回null

时间:2013-12-10 03:29:00

标签: android android-fragments

我尝试更改活动附加textview下的fragment,因此我将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

我的问题:

  1. 如果第一次没问题,它怎么可能返回null?
  2. 更改textview /任何其他控件的最佳解决方案是什么 片段内?有很多碎片,我只需要 改变附加片段。
  3. nb:上面的所有代码都在主要活动

    之下

1 个答案:

答案 0 :(得分:1)

如果我误解了你的问题,请纠正我。这听起来像你的情况,你附加片段A,然后你附加片段B,然后你按回来,留下你的片段A.在这种情况下,attachmentFragment只是一个变量,所以它继续指向B,但从B现在是分离的,它是null。按下后面不会重新填充带有片段A的变量attachedFragment。

尝试使用findFragmentById或findFragmentByTag。有关详细信息,请查看此thread