Как использовать onClickListener для подсчета количества нажатий кнопки?

1

Я хочу подсчитать, сколько раз нажимается кнопка (которая создается динамически). На самом деле проблема заключается в том, что я не могу найти способ вернуть что-либо из onclicklistener из-за того, что onClick является Void, а onclicklistener может возвращаться только в виде представления.

public  View.OnClickListener evenbutton(final Button inputbutton,
                                        final LinearLayout layout,
                                        final Button[] wholebutton,
                                        final int count){
    return new View.OnClickListener(){
        public void onClick(View v){
          //stuff
        }
    }
}; 

Итак, теперь я не могу рассчитывать или возвращать что-либо еще внутри onClick.

Как я могу подсчитать или получить что-либо за пределами onclicklistener при нажатии кнопки?

Теги:
button

4 ответа

4
Лучший ответ

Вы можете увеличить статическое поле, объявленное в вашем классе.

  • 0
    Большое спасибо, это работает :)
4

Вы можете вызвать функцию, которая подсчитывает щелчок, например:

public void onClick(View v)
{
    countClick();
}

И затем объявите свою функцию

public void countClick(){
    myClickCount++;
}

Надеюсь это поможет...

0

Я думаю, вы можете использовать SharedPreferences для этих целей. Каждый раз, когда вы нажимаете кнопку, вы можете прочитать предпочтение, которое у вас есть, изменить его и сохранить. Более того, это один из предложенных способов хранения данных в документации: http://developer.android.com/guide/topics/data/data-storage.html#pref

0

Назначьте глобальный int i.And, продолжайте увеличивать его, каждый раз, когда вы нажимаете кнопку.

замените "материал" на

я = я + 1;

  • 0
    Не сработает, так как мне нужно быть окончательным, чтобы его можно было использовать во внутреннем классе. И, очевидно, этого не может быть. Решение @oriolpons будет работать.
  • 0
    да, потому что это в анонимном внутреннем классе.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню