gpt4 book ai didi

java - 设置 viewPager.setCurrentItem 时出现 NullPointerException

转载 作者:行者123 更新时间:2023-12-01 21:43:21 25 4
gpt4 key购买 nike

错误:

java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v4.view.ViewPager.setCurrentItem(int)' on a null object reference at com.example.iswipe.MainActivity.onRestoreInstanceState(MainActivity.java:68)

public class MainActivity extends AppCompatActivity {
TabLayout tabLayout;
ViewPager viewPager;
FragmentPagerAdapter adapterViewPager;

public static String POSITION = "POSITION";

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
ViewPager vpPager = (ViewPager) findViewById(R.id.viewpager);
adapterViewPager = new MyPagerAdapter(getSupportFragmentManager());
vpPager.setAdapter(adapterViewPager);

// Give the TabLayout the ViewPager
tabLayout = (TabLayout) findViewById(R.id.sliding_tabs);
tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);
tabLayout.setTabMode(TabLayout.MODE_FIXED);
tabLayout.setupWithViewPager(vpPager);

// Attach the page change listener inside the activity
vpPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {

}

@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putInt(POSITION, tabLayout.getSelectedTabPosition());
}

@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
viewPager.setCurrentItem(savedInstanceState.getInt(POSITION)); <----------- LINE 68
}

嗨,我正在关注这个 tutorial学习(获取或选择当前页面)。指出我可以通过实现 onSaveInstanceState() 和 onRestoreInstanceState() 方法来保存和恢复最后一个已知的选项卡位置,以在屏幕旋转期间保留此数据。

但我在第 68 行收到 NPE。非常感谢您的帮助。谢谢!

最佳答案

您正在将 ViewPager 实例保存在 onCreate 的本地变量中。您应该将其保存在字段中。

您可以

  • viewPager = vpPager; 添加到 onCreate

或者

  • ViewPager vpPager = (ViewPager) findViewById(R.id.viewpager); 替换为 viewPager = (ViewPager) findViewById(R.id.viewpager); 并替换每次将 vpPagerviewPager 一起使用。

我建议您尝试真正理解这里的问题是什么。它将帮助您提高编程技能。

关于java - 设置 viewPager.setCurrentItem 时出现 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36213585/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com