每当我的 back_button 到达 String[0] 并且我尝试向后退时,我的应用程序就会崩溃。而不是简单地从 String[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]); } } });顺便提一句。我认为这可能与我其他人的按钮逻辑中的此代码有关,也许在从 String [0] 到 String [last string(6)] 时有一个类似的函数可以调用? if (currentnumber == list.length) { currentnumber = 0; backk = 0; back = 1;编辑:我删除了 if ( backk < 0 ) { ... ,我不知道为什么它在那里开始,抱歉,那不应该在那里。
1 回答
Cats萌萌
TA贡献1805条经验 获得超9个赞
在您的块中,进行以下更改:
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]);
}
如果您解释了您要完成的工作并发布更多代码,我可能会帮助清理您的代码,并附上有关我为何做出选择的评论。但是上面的更改将修复该数组越界崩溃。
添加回答
举报
0/150
提交
取消