Android 从viewpager中的多个片段收集数据

Android 从viewpager中的多个片段收集数据,android,android-fragments,android-viewpager,baseadapter,multichoiceitems,Android,Android Fragments,Android Viewpager,Baseadapter,Multichoiceitems,我使用baseadapter创建了一个自定义listview。列表项包含一个复选框,用于多选的目的。我在baseadapter中添加了一个函数,用于返回所选项的位置 为了对列表项进行分类,我尝试使用带有FragmentPagerAdapter的Viewpager将列表视图分为多个片段。现在每个片段都有自己的多选择列表视图。用户需要能够在页面之间滑动并选择项目,然后在移动到下一个活动之前,我必须将所有选定的项目位置收集到两个片段中维度列表或数组 我的问题: 似乎Viewpager在内存中只保留了两

我使用baseadapter创建了一个自定义listview。列表项包含一个复选框,用于多选的目的。我在baseadapter中添加了一个函数,用于返回所选项的位置

为了对列表项进行分类,我尝试使用带有FragmentPagerAdapter的Viewpager将列表视图分为多个片段。现在每个片段都有自己的多选择列表视图。用户需要能够在页面之间滑动并选择项目,然后在移动到下一个活动之前,我必须将所有选定的项目位置收集到两个片段中维度列表或数组

我的问题: 似乎Viewpager在内存中只保留了两个附加页面,一个在当前页面的两侧。如果我的Viewpager位于角落或有3个以上的页面,我将无法收集某些片段中所选项目的列表


如果您能在这方面提供帮助,我将不胜感激。

让每个
片段
在用户离开时将所选项目保存到
SharedReferences
。稍后让您的其他
活动
SharedReferences
检索项目

int len = listView.getCount();
SparseBooleanArray checked = listView.getCheckedItemPositions();
for (int i = 0; i < len; i++)
{
    if (checked.get(i)) 
    {
        // Get the item
        // Deal with the checked item. 
        // ex: add to ArrayList
        arrayList.add(item);
    }
}

Set<String> set = new HashSet<String>();
set.addAll(arrayList);
mSharedPreferences.edit().putStringSet("key", set).apply();
int len=listView.getCount();
SparseBooleanArray checked=listView.GetCheckEditePositions();
对于(int i=0;i
pagechangelistener是否会在我每次刷卡时触发事件?@Deepak我会将此逻辑放在每个
片段的
onPause()
方法中,而不是放在pagechangelistener中。不过,我不知道你的应用程序的结构。