Android, String Array не может перейти НАЗАД от [0] до [6 (последняя строка)] (Button = Button -1), CRASH - PullRequest
0 голосов
/ 17 сентября 2018

Всякий раз, когда моя кнопка 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]);

            }
        }



    });

Btw. Я подумал, что, может быть, это как-то связано с этим кодом прямо здесь, в логике моего друга, возможно, есть аналогичная функция, которую нужно вызывать при переходе от String [0] к String [last string (6)]?

  if (currentnumber == list.length) {
                currentnumber = 0;
                backk = 0;
                back = 1;

РЕДАКТИРОВАТЬ: я удалил, если (backk <0) {..., я не знаю, почему он был там с самого начала, извините, его там не должно было быть. </p>

1 Ответ

0 голосов
/ 17 сентября 2018

В вашем блоке внесите следующие изменения:

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]);
}

Если вы объясните, что вы пытаетесь выполнить, и опубликуете больше кода, я мог бы помочь очистить ваш коднемного с комментариями о том, почему я делаю выбор, который я делаю.Но изменение, приведенное выше, исправит сбой массива за пределами границ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...