Я пытаюсь научиться создавать viewPager с точками, отображающими прогресс, в основном с экранами приветствия, и я следую учебному пособию. Это хорошо аннотировано, и я, кажется, понимаю, что происходит, однако когда я нажимаю кнопку «Далее», приложение умирает.
Я прилагаю приведенный ниже код и снимок экрана с ошибкой, полученной в отладчике. Надеюсь, кто-нибудь сможет помочь. Я вернул все, как было в учебнике, чтобы убедиться, что это не мой «творческий вклад», который портит, но все же он дает сбой. Кнопка «пропустить» работает просто отлично:
myViewPagerAdapter = new MyViewPagerAdapter();
viewPager.setAdapter(myViewPagerAdapter);
viewPager.addOnPageChangeListener(viewPagerPageChangeListener);
btnSkip.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
launchHomeScreen();
}
});
btnNext.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// checking for last page
// if last page home screen will be launched
int current = getItem(+1);
if (current < layouts.length) {
// move to next screen
viewPager.setCurrentItem(current);
} else {
launchHomeScreen();
}
}
});
}
Это «фатальное исключение», которое я получаю:
E / AndroidRuntime: FATAL EXCEPTION: main
Процесс: com.example.android.signs, PID: 31291
java.lang.ArrayIndexOutOfBoundsException: length = 1; Индекс = 1
в com.example.android.signs.WelcomeActivity.addBottomDots (WelcomeActivity.java:99)
на com.example.android.signs.WelcomeActivity.access $ 400 (WelcomeActivity.java:24)
на com.example.android.signs.WelcomeActivity $ 2.onPageSelected (WelcomeActivity.java:123)
на android.support.v4.view.ViewPager.dispatchOnPageSelected (ViewPager.java:1947)
на android.support.v4.view.ViewPager.scrollToItem (ViewPager.java:686)
на android.support.v4.view.ViewPager.setCurrentItemInternal (ViewPager.java:670)
на android.support.v4.view.ViewPager.setCurrentItemInternal (ViewPager.java:631)
на android.support.v4.view.ViewPager.setCurrentItem (ViewPager.java:612)
на com.example.android.signs.WelcomeActivity $ 1.onClick (WelcomeActivity.java:80)
на android.view.View.performClick (View.java:6305)
на android.view.View $ PerformClick.run (View.java:24840)
на android.os.Handler.handleCallback (Handler.java:790)
на android.os.Handler.dispatchMessage (Handler.java:99)
на android.os.Looper.loop (Looper.java:164)
на android.app.ActivityThread.main (ActivityThread.java:6501)
в java.lang.reflect.Method.invoke (родной метод)
в com.android.internal.os.RuntimeInit $ MethodAndArgsCaller.run (RuntimeInit.java:438)
на com.android.internal.os.ZygoteInit.main (ZygoteInit.java:807)
Приложение прекращено.
^ Здесь я всегда надеюсь, что он просто перешагнет и перейдет на следующую страницу
^ Когда я перехожу, я получаю сообщение «Не могу найти локальную переменную« btnNext »», приводит меня к зацикливанию и застревает. Нашел некоторые темы, в которых люди отключали testCoverage в gradle, но этого не было, все равно добавили его и установили «false», но ошибка не изменилась.
Также добавляется хранилище: https://github.com/simplydikka/traffic.git