Android getView()返回textview,但textview未更新
我有一个片段a扩展了B。在B的内部,我在Android getView()返回textview,但textview未更新,android,Android,我有一个片段a扩展了B。在B的内部,我在onCreateView中初始化我的视图,如下所示 @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { mView = super.onCreateView(inflater, container, savedInstanceState); mText1 = (TextVi
onCreateView
中初始化我的视图,如下所示
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
mView = super.onCreateView(inflater, container, savedInstanceState);
mText1 = (TextView) mView.findViewById(R.id.textView1)
mText2 = (TextView) mView.findViewById(R.id.textView2)
retrun mView
}
但是在我的文本更新方法中,如果我尝试像这样获取mText1
(我知道您可以从以前使用mText1
字段,但这不是重点)
请注意,我使用getView()
获取mText1
。奇怪的是,屏幕上只设置了mText2
,而mText1
完全为空
编辑:另外,如果我切换到另一个片段,然后返回,mText1和mText2都不会得到更新如果您有多个活动片段将textview定义为R.id.textView1,那么您可能在视图层次结构中的其他地方找到了textview。调用setText()时没有得到NullPointerException,因此findViewById()返回了一些内容 由于getView()返回活动的根视图,findViewById将找到具有该id的第一个视图
尝试使用mView.findViewById(…)将搜索限制为仅搜索片段中的视图。我从第三方库获得一个静态引用,该库使旧片段保持活动状态:(这是一个很好的猜测,但不是问题所在。我在上面添加了附加信息。当我返回片段时,也会出现此问题,但所有视图都不起作用
public void updateView()
{
mText1 = (TextView) getView().findViewById(R.id.textView1);
mText1.setText("test");
mText2.setText("test");
}