Java Android,字符串数组可以';t从[0]倒退到[6(最后一个字符串)](按钮=按钮-1),崩溃

Java Android,字符串数组可以';t从[0]倒退到[6(最后一个字符串)](按钮=按钮-1),崩溃,java,android,arrays,string,Java,Android,Arrays,String,每当我的back_按钮到达字符串[0]时,我尝试向后运行,我的应用程序就会崩溃 与其简单地从字符串[0]返回到我当前的最后一个字符串[6]并继续向后返回(如果满足条件),为什么它不这样做 我的代码为那个按钮,顺便说一句,我是新的编程,我知道我的代码是非常垃圾。。但是,这是另一个话题,请xD: back_button.setOnClickListener(new View.OnClickListener() { @Override public void onC

每当我的back_按钮到达字符串[0]时,我尝试向后运行,我的应用程序就会崩溃

与其简单地从字符串[0]返回到我当前的最后一个字符串[6]并继续向后返回(如果满足条件),为什么它不这样做

我的代码为那个按钮,顺便说一句,我是新的编程,我知道我的代码是非常垃圾。。但是,这是另一个话题,请xD:

  back_button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            forward_button.setVisibility(View.GONE);
            backButton();

            if (mediator == 10) {

                forward_button.setVisibility(View.VISIBLE);
                backk--;
                display.setText(list[backk]);
            }


            if (backk == currentnumber-5 ) {
                back_button.setClickable(false);
            }
            if (backk != currentnumber-5) {
                back_button.setClickable(true);
                back_button.setEnabled(true);
            }



            if (mediator != 10){
                back_button.setEnabled(false);
                display.setText(list[currentnumber]);

            }
        }



    });
顺便说一句,我想这可能与我的另一个按钮逻辑中的代码有关,当从字符串[0]转到字符串[last String(6)]时,可能需要调用一个类似的函数


编辑:我删除了if(backk<0){…,我不知道它为什么会在那里,抱歉,它不应该在那里。

在你的块中,进行以下更改:

if (mediator == 10) {

    forward_button.setVisibility(View.VISIBLE);
    backk--;

    // If we go below the size of the array, add the array
    // size to loop back to the last element in the array
    if (backk < 0){
        backk += list.length;
    }
    display.setText(list[backk]);
}
if(中介==10){
前进按钮。设置可见性(视图。可见);
巴克——;
//如果我们小于数组的大小,请添加数组
//循环回数组中最后一个元素的大小
if(backk<0){
backk+=list.length;
}
display.setText(list[backk]);
}

如果你解释一下你想完成什么,并发布更多的代码,我也许可以帮助你清理一下代码,解释一下我为什么要做这些选择。但是上面的更改将修复数组越界崩溃。

嘿,它确实有效,但是,我只希望按钮向后移动5个字符串,不再移动,而是添加这段代码似乎在操纵数字,我基本上遇到了问题。backk+=list.length;做什么?特别是数字方面。好吧,在我的if条件下,我写了-5而不是currentnumber-5,然后我还写了+=list.length;backk+=list.length;它现在确实按预期工作,但有一件难看的事,我必须点击twice如果该函数用于更改显示的字符串。现在如何处理?我知道你并不真正了解我的代码如果你能用普通语言解释一下你真正想用这段代码做什么,那么我可以尝试帮助你清理它。我只是说不出目标是什么。让我知道每个变量的含义以及它们之间的相互作用动作,然后你想让按钮做什么。我在这里做的是检查你是否备份了太多的一次。如果备份了,我将你的backk索引指向数组的末尾。因此数组基本上会循环。
if (mediator == 10) {

    forward_button.setVisibility(View.VISIBLE);
    backk--;

    // If we go below the size of the array, add the array
    // size to loop back to the last element in the array
    if (backk < 0){
        backk += list.length;
    }
    display.setText(list[backk]);
}