95 可读性
将光标移到/点击文章中的句子上,可以查看原文。 显示译文      显示原文      双语对照

如何更改viewpager的页面?

在我的应用程序中使用ViewPager并在主 Activity 中定义它。 onCreate 方法中,我从SharedPreferences加载了一些页面,然后将它的传递给 PagerAdapter:


@Override
public int getCount() {
 return numberOfPages;
}


有了这个但问题是,如果我想更改这里个数( 或者其他 Activity ) 到一些其他的参数选择中小于页索引这个索引超出范围我之前观察,我的应用会崩溃,因为当我重新回到 可以通过改变viewpager的活动页面来修复。 有什么方法可以做到?

时间: 原作者: 2个回答

我不确定我是否完全理解了这个问题,但是从你的问题标题来看,我猜你正在寻找的是 pager.setCurrentItem( num ) ,可以让你通过编程来 switch 到另一页在 ViewPager 内。

如果这不是问题,我需要查看来自vmid的堆栈跟踪。

原作者:

如果不检查你的代码,我认为你所描述的是你的页面不同步,并且你的数据陈旧。

你说你正在改变页数,然后崩溃,因为你正在访问旧的页面集。 这听起来好像你在改变数据后没有调用 pageAdapter.notifyDataSetChanged()

当你的viewPager 3一组 10的页面中显示的是页面,而你更改为调用 notifyDataSetChanged() 一套有唯一 5,那么现在,你将看到的是你正在查看页 3了新的设置。 如果你以前正在查看旧设置的第 8页,在放入新设置并调用 notifyDataSetChanged() 之后,你会发现现在正在查看新设置的最后一页而不会崩溃。

如果你只是更改当前页面,你可能只是在掩盖问题。

原作者:
...