#android #button #view #interface #listener
#Android #кнопка #Вид #интерфейс #слушатель
Вопрос:
Я посмотрел на http://developer.android.com/reference/android/view/package-summary.html и увидел, что класс view имеет интерфейс с именем «View.OnClickListener», который является «определением интерфейса для обратного вызова, вызываемого при нажатии на представление», Мой вопрос в том, в чем разница, если вы указываете представление или нет в интерфейсе?
В основном это
button.setOnClickListener(новая кнопка.OnClickListener() такой же, как
button.setOnClickListener(новый OnClickListener()?
Комментарии:
1. я это знаю. Просмотр абстрактного класса
Ответ №1:
Есть 2 из setOnClickListener
одного для View
класса и один относится к DialogInterface
классу.
Итак, чтобы манипулировать представлением как Button
или ImageView
и добавлять к нему действие, вам нужно использовать View.OnClickListener
при работе с диалоговыми кнопками, которые вы должны использовать DialogIneterface.onClickListener
, у обоих разные аргументы.
Обычно при добавлении onClickListener
класс View будет импортирован по умолчанию или он заставит вас выбирать между обоими классами. так что вам не нужно добавлять View.onClickListener
. Однако, если класс DialogInterface
уже импортирован и вы хотите использовать View OnClickListener, вам нужно написать View.onClickListener
, чтобы различать оба класса « onClickListener
.
Надеюсь, теперь это ясно, и это то, что вы ищете.
Комментарии:
1. имеет ли это какое-то отношение к этому ключевому слову? Я знаю, что когда вы вызываете метод экземпляра внутри другого метода экземпляра, вам не нужно ставить this перед вызовом метода (выполняется автоматически, относится к текущему исполняемому объекту) Но здесь это анонимный класс. Работает ли это так же? Кнопка, тип представления, просто включается автоматически?
2. OnClickListener немного отличается от
this
keyword, вам не нужно ставить View перед OnClickListener, если вы импортировалиView
класс, однако, если вы его не импортировали, вам нужно добавитьView
ключевое слово. дляthis
ключевогоthis
слова во внешнем классе это не то же самоеthis
, что вanonymous
классе, который вы можете вызватьthis
из внешнего классаOuterClassName.this
, вы можете обратиться к этой ссылке дляthis
ключевого слова между внешним и внутренним классом.