6

我基本上有一个AsyncTask(从 main 运行Activity)填充ViewPager一个片段内部。我正在膨胀一个 xml 布局文件来填充ViewPager.

问题是我无法获得指向布局内视图(imageview、textview)的指针,因此我可以在运行时进行更改。我知道这可能是因为getView()返回null。我读过这可能是因为onCreateView()还没有被调用。有人知道我能做些什么来解决这个问题吗?


我的代码现在有点乱。

这是对我正在做的事情的更简单的解释:

  1. MainActivity Asynctask 填充数据库并将指针发送到 Fragment。类似 SendToFragement(db);
  2. Fragment 方法 ReceiveFromActivity(db) 接收 db 指针并填充 ViewPager。

如果我只是创建 TextViews、设置文本并将 TextViews 添加到 Viewpager,它就可以正常工作。但是,当然,我想让它看起来更好,所以我膨胀了一个 xml 布局。问题是我无法更改 xml 布局的内容,因为getView()正在返回NULL所以getView().findViewById()不起作用。

4

1 回答 1

7

根据您的 PagerAdapter 的实现,可能会销毁不再显示的 FragmentView以释放资源。因此,无需更新 ,View因为它将onCreateView()使用更新的信息再次创建。 getView()将在调用onCreateView()和之间返回一个视图onDestroyView()。除此之外,Fragmentcan 仍然存在于内存中,但不附加到 any View,因此getView()将返回null

所以基本上,

View fragmentView = getView();
if(fragmentView != null) {
  // we are in view or at least exist. Update the elements.
}
// Else don't worry about it. Just update the data.
于 2013-02-28T13:57:59.673 回答