2 голоса
 
894 просмотра
25.08.2018 / 23:03  SuperSystem

Как работает OnClickListener

Мне нужно узнать как работает интерфейс OnClickListener.
Конкретно мне нужно знать как он сохраняет в себя данные которые находятся в onClick(View v);
Помогите ппожалуйста.
Ответы
 
1 голос
 
# 25.08.2018 / 23:59  danfedotov45
Чтобы это понять надо знать как работает интерфейс. Нельзя создать объект интерфейса но его можно подключить к классу, когда ты вызываешь setOnClickListener ты указываешь либо так
new View.OnClickListener(){
//Some abstract method
}
либо подключаешь интерфейс и пишешь this , в классе View твой интерфейс запоминается, и когда кнопка нажата то вызывается метод Inter.onClick(someView); , где Inter - интерфейс который ты указал как аргумент при вызове setOnClickListener.
Это напоминает как ты создал метод, а кнопка когда нажата, вызывает твой метод.
В классе View примерно так (примерно и обрезано):

  1. public class View{
  2.  
  3. OnClickListener onc;
  4.  
  5. public View(Context c){
  6. ...
  7. }
  8.  
  9. public void setOnClickListener(OnClickListener ooo){
  10. onc=ooo;
  11. }
  12.  
  13. public void onTouchEvent(MotionEvent mr){
  14. onc.onClick(this);
  15. }
  16.  
  17. interface OnClickListener{
  18.  
  19. public void onClick(View gg);
  20.  
  21. }
  22.  
  23. }
Как бы кто то не подумал, то это эквивалентный код, примерно.
Детали об интерфейсах тут.
Изм. danfedotov45 от 26.08.2018 / 00:03
 
0 голосов
 
# 26.08.2018 / 15:15  SuperSystem
Спасибо огромное :)
Всего: 2

Реклама

Мы в соцсетях

tw tg yt gt