Суммируйте старую переменную с новой переменной - PullRequest
0 голосов
/ 28 мая 2019

У меня есть адаптер, который указывает на элементы с атрибутом «Время». Если пользователь нажимает кнопку на одном элементе, а на другом, мне нужно суммировать оба значения времени. Я не могу этого достичь.

Я пробовал что-то вроде time += time, разделить эти значения и т.д.

Это было последнее, что я пытался. Да, это не имеет никакого смысла, но ИДК, ничего не сработало.

 [...]
  add.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                GetTime(gameItem.getTime());

            }
        });
    }

    private int GetTime(int timeplayed) {
        time += timeplayed;

        return time;
    }

То, что должно было быть в начале, есть пустая переменная времени. Timeplayed добавляется к нему и возвращается как время. Итак, каждый раз, когда вы нажимаете кнопку, время воспроизведения добавляется и возвращается как время

На самом деле, вместо того, чтобы суммировать старую переменную с новой, она либо просто набирает 0 +, либо суммирует новую переменную с самим собой ...

1 Ответ

0 голосов
/ 28 мая 2019

Из того, что вы сказали, мне кажется, что значение поля изменяется или фактически не инициализируется вообще до того, как вы на самом деле выполняете свои математические операции над ним. Поэтому ответ на ваш вопрос прост: убедитесь, что значение поля не изменилось до того, как ваш код достигнет метода private int GetTime(int timeplayed).

В любом случае ваш код обязательно должен работать, так как синтаксис операции правильный. time += timeplayed эквивалентно time = time + timeplayed. Я не вижу остальной части вашего кода, поэтому я не могу точно сказать, что происходит под капотом, но если вы хотите поделиться остальной частью своего кода, практически везде, где переменная времени изменяется (включая место, где оно фактически инициализируется) Я мог бы помочь вам в дальнейшем.

Но сначала нужно убедиться, что переменная имеет ожидаемое значение (не то же самое, что timeplayed и не 0). Это можно сделать с помощью отладки с использованием точек останова или путем регистрации значения в консоли перед выполнением операции.

Надеюсь, это поможет, дайте мне знать, как это происходит.

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