Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/222.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 保存PagerAdapter的当前状态_Android_Android Viewpager_Android Adapter - Fatal编程技术网

Android 保存PagerAdapter的当前状态

Android 保存PagerAdapter的当前状态,android,android-viewpager,android-adapter,Android,Android Viewpager,Android Adapter,我有一个ViewPager,我想在离开活动后保存当前状态。我的一个选择是将当前变量值保存在我已有的数据库中,并在重新创建活动时将其读回。然而,这个解决方案似乎工作过度。是否有其他更好的方法来恢复ViewPagwer的最后状态?我可以使用ViewPager适配器的这两种方法吗 @Override public void restoreState(Parcelable arg0, ClassLoader arg1) {} @Override public Parcelable saveState(

我有一个
ViewPager
,我想在离开
活动后保存当前状态。我的一个选择是将当前变量值保存在我已有的数据库中,并在重新创建活动时将其读回。然而,这个解决方案似乎工作过度。是否有其他更好的方法来恢复
ViewPagwer
的最后状态?我可以使用
ViewPager
适配器的这两种方法吗

@Override
public void restoreState(Parcelable arg0, ClassLoader arg1) {}

@Override
public Parcelable saveState() {
    return null;
}

如果是,请提供使用它的简单示例。谢谢。

这实际上取决于您要保存的数据类型。如果是一些私有字段,则可以使用这两种方法,如果数据更复杂,则可以使用Parcelable。通常不需要使用DB来实现此目的,如果您从internet或其他地方捕获数据,并希望保存/恢复数据,以避免在销毁活动后再次重新加载,则使用DB作为缓存,但这是另一个问题。因此,要缓存数据,您需要在从internet下载所有需要的数据后立即使用应用程序的DB和files文件夹,然后使用AsyncTaskLoader从DB加载数据,然后使用PagerAdapter在ViewPager上表示数据。

感谢您的回复。在每个页面上,我都会显示不同的内容,这些内容会根据所采取的操作而变化。在文本视图和不同的背景上,它主要是不同的文本。如何显示此特定页面的此特定内容,并在重新创建活动后将寻呼机设置为我离开的位置?在具有ViewPager的片段或活动中,可以使用onSaveInstancestate和onRestoreInstanceState获取、保存并恢复UI的任何临时值,如positions.ok。我刚才提到的那两种方法怎么样?它们在我的ViewPager的PagerAdapter内。