我在viewpager
下面sqlite
每个视图都会加载一个存储在item
中的列表视图。在列表视图的每个List fragment
中都有一个按钮,可以通过在DB中进行更改来将自身更改为其他列表
例如:我可以将Absen fragment
中的项目移至Atten fragment
或adapter
问题是中间片段的视图没有重新加载。我认为因为the fragment
没有调用(因为previous fragment
位于中间,所以它已经在public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_list_student_current_session, container,false);
ButterKnife.bind(this, view);
setListViewAdapter();
return view;
}
public void setListViewAdapter(){
DatabaseHelper db = new DatabaseHelper(getActivity());
list = db.getListStudentAbsen(((CurrentSessionActivity)this.getActivity()).getSessionID());
listView.setAdapter(new ListAbsenStudentCurrentSessionAdapter(list, getActivity()));
}
中调用)。
我的片段:
activity
这个工具是否正确,或者我应该尝试使用其他工具与DB进行交互,例如仅在USE test; /* or some other schema, NOT information_schema */
CREATE TEMPORARY TABLE ist1 AS SELECT * FROM INFORMATION_SCHEMA.TABLES;
CREATE TEMPORARY TABLE ist2 AS SELECT * ist1;
完全完成时更新数据库。
答案 0 :(得分:1)
目前还不清楚你的计划会发生什么。但是,我可以理解第一个 ViewPager项目中的最明亮的视图项可以更新itselft,然后它应该出现在第二个 ViewPager项目中?如果是这样,您应该使用pagerAdapter.getItem(position)获取第二个 ViewPager项的实例,然后调用类似setData(list)的内容 - > notifyDataSetChanged()
例如,你在PagerAdapter中有3个片段,每个片段都有自己的列表视图,当第一个片段列表中的数据更新时,你必须更新第二个片段列表适配器。
答案 1 :(得分:0)
我使用以下方法找到了我案例的解决方案:
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if (isVisibleToUser && isResumed) {
//call set adapter here
}
}