当片段中的列表视图适配器发生变化时,我一直在用Fragments敲击墙并触发视图刷新。现在我有:
刷新方法如下:
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 - 即使我存储它。
答案 0 :(得分:0)
我是通过FragmentManager获取Fragment并转换为原始接口来运行接口方法 - 这似乎返回了一个意外的版本,这不一定是活动的Fragment因此导致我遇到的问题。
相反,我自己保留了对生成的片段的引用,因此我可以随意引用它们。