почему num всегда равно нулю, когда я нажимаю кнопку увеличения и уменьшения, а также возвращает ноль, когда внутри него тосты равны числу - PullRequest
0 голосов
/ 25 ноября 2018

Почему num = 0 после каждого нажатия на увеличивается или уменьшается ?Метод increasedecrease(...) всегда возвращает 0, но внутри OnClickListner он меняет свое значение на действительное число.Может кто-нибудь объяснить, пожалуйста, это поведение?

int num;

public int incraesedecrease( final titleHodler viewHolder) {

    viewHolder.increase.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            num = Integer.parseInt(viewHolder.textnum.getText().toString());
            num++;
            String txtnum = Integer.toString(num);
            viewHolder.textnum.setText(txtnum);
        }
    });

    viewHolder.decrease.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            num--;
            String txtnum=Integer.toString(num);
            if(num>0) {
                viewHolder.textnum.setText(txtnum);
            }

        }
    });

    Toast.makeText(context, ""+num, Toast.LENGTH_SHORT).show();

    return num;
}

1 Ответ

0 голосов
/ 25 ноября 2018

Внутри метода вы просто создаете слушателей onclick.Значение, возвращаемое методом, должно быть таким же, как и начальное значение непосредственно перед вызовом функции.

Строка Toast и return выполняются при вызове функции Increasedecrease, а не при нажатии кнопки.

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