单击时找不到局部变量,调试器打开Looper.java,应用程序死亡
我正在尝试学习如何制作一个带有点的viewPager来显示进度,基本上就是那些欢迎屏幕,我正在学习一个教程。它有很好的注释,我似乎知道发生了什么,但是当我点击我的“下一步”按钮时,应用程序就死了 我附上下面的代码,以及我在调试器中得到的错误截图。希望有人能帮忙。我已经返回了教程中的所有内容,以确保不是我的“创造性输入”造成混乱,但它仍然崩溃。“跳过”按钮工作正常:单击时找不到局部变量,调试器打开Looper.java,应用程序死亡,java,android,loops,android-viewpager,Java,Android,Loops,Android Viewpager,我正在尝试学习如何制作一个带有点的viewPager来显示进度,基本上就是那些欢迎屏幕,我正在学习一个教程。它有很好的注释,我似乎知道发生了什么,但是当我点击我的“下一步”按钮时,应用程序就死了 我附上下面的代码,以及我在调试器中得到的错误截图。希望有人能帮忙。我已经返回了教程中的所有内容,以确保不是我的“创造性输入”造成混乱,但它仍然崩溃。“跳过”按钮工作正常: myViewPagerAdapter = new MyViewPagerAdapter(); viewPager.setAd
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();
}
}
});
}
myViewPagerAdapter=新的myViewPagerAdapter();
设置适配器(myViewPagerAdapter);
viewPager.addOnPageChangeListener(viewPagerPageChangeListener);
btnSkip.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
启动主屏幕();
}
});
btnNext.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
//检查最后一页
//如果最后一页主页将启动
int current=getItem(+1);
if(当前
这是我得到的“致命例外”:
E/AndroidRuntime:致命异常:主
进程:com.example.android.signs,PID:31291
java.lang.ArrayIndexOutOfBoundsException:长度=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'”,它把我带到looper并卡住了。在gradle中发现了一些关于人们关闭testCoverage的主题,但没有,仍然添加了它并将其设置为“false”,但错误保持不变
还添加了存储库:private void addBottomDots(int currentPage){
dots=新文本视图[layouts.length];
int[]colorsActive=getResources().getIntArray(R.array.array\u dot\u活动);
int[]colorsInactive=getResources().getIntArray(R.array.array\u dot\u inactive);
int index=currentPage;
dotsLayout.removeallview();
对于(int i=0;i0)
点[currentPage].setTextColor(颜色活动[0]);
}
问题在于,您将当前页面(正在增加)用作未增加的数组的索引。点阵的索引将始终为0,因此只需使用0。我想,当我什么都看不懂的时候,很难说我能一直看到主屏幕。我想你甚至不需要点阵。oooh我的天啊,它修好了,非常感谢你。调试器很早就停止了,所以我甚至没有在下面查找问题。上帝啊非常感谢。
private void addBottomDots(int currentPage) {
dots = new TextView[layouts.length];
int[] colorsActive = getResources().getIntArray(R.array.array_dot_active);
int[] colorsInactive = getResources().getIntArray(R.array.array_dot_inactive);
int index = currentPage;
dotsLayout.removeAllViews();
for (int i = 0; i < dots.length; i++) {
dots[i] = new TextView(this);
dots[i].setText(Html.fromHtml("•"));
dots[i].setTextSize(35);
dots[i].setTextColor(colorsInactive[0]);
dotsLayout.addView(dots[i]);
}
if (dots.length > 0)
dots[currentPage].setTextColor(colorsActive[0]);
}