Java 获取视图时的Android片段空指针

Java 获取视图时的Android片段空指针,java,android,view,fragment,Java,Android,View,Fragment,我一直在用片段碰壁,当适配器更改片段内的listview时,触发视图刷新。现在我有: 保存碎片管理器的主要活动 该活动通过FragmentPagerAdapter.getItem方法基于位置创建片段 随后的活动或按钮按下会导致其中一个片段后面的数据发生更改 该活动调用自定义片段类上的refresh方法来触发数据刷新 refresh方法获取片段中的ListView对象 这就是发生Null异常的地方 刷新方法如下: public void refresh() { groups = new

我一直在用片段碰壁,当适配器更改片段内的listview时,触发视图刷新。现在我有:

  • 保存碎片管理器的主要活动
  • 该活动通过FragmentPagerAdapter.getItem方法基于位置创建片段
  • 随后的活动或按钮按下会导致其中一个片段后面的数据发生更改
  • 该活动调用自定义片段类上的refresh方法来触发数据刷新
  • refresh方法获取片段中的ListView对象
    • 这就是发生Null异常的地方
刷新方法如下:

public void refresh() {
  groups = new Select()
    .from(Group.class)
    .execute();

  listView = (ListView)getActivity().findViewById(R.id.overview_container);
  // Never get here
  groupAdapter.clear();
  groupAdapter.setItems(groups);
  listView.invalidateViews();   
}
设置是

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
  view = inflater.inflate(R.layout.fragment_overview, container, false);

  groups = new Select()
    .from(Group.class)
    .execute();

  listView = (ListView)view.findViewById(R.id.overview_container);
  listView.setAdapter(new GroupAdapter(view.getContext(), R.layout.time_view, groups));     
  return view;
}

我在这里缺少什么基本的东西吗?这里是否有一种更简单的模式,比如侦听器,可以解决这个问题?我似乎无法让视图返回除null以外的任何内容-即使我存储了它。

我通过FragmentManager获取片段并转换为原始接口以运行接口方法-这似乎返回了一个意外的版本,它不一定是活动片段,从而导致了我遇到的问题


相反,我保留了对生成片段的引用,以便可以随意引用它们。

您确定这是在onAttach()之后调用的吗?您是否确实在活动中有一个当前已膨胀ID的ListView?您最好在onCreateView方法中找到您的ListView,然后保存其实例或类似的内容,以便在必要时刷新它…这至少在onCreateView之后调用-但当片段在screenI上积极显示时调用refresh确实将ListView存储在onCreateView方法中,但结果仍然为null。