Я пытаюсь реализовать поведение OnClick
в представлении моего приложения. Поскольку я новичок в андроиде и буду знать, пройдет ли это при реализации интерфейса View.OnClickListener
, будет лучше выбирать или использовать setOnclickListener
Анонимный класс для виджета. Что касается меня, то я считаю, что передача этого может привести к тому, что весь вид активности и его дочерние элементы будут виден конкретному виджету, поэтому они будут потреблять больше памяти и, следовательно, избежать утечки памяти, что является наилучшим подходом.setOnclickListener vs Activity реализует View.OnClickListener
ответ
Фактически, когда мы реализуем OnClickListener, потому что у нас есть более одного или двух элементов щелчка. как если у меня есть 10 кнопок в одном макете и я пишу каждый клик слушатель как:
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
}
});
button2setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
}
});
button3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
}
});
не очень хорошая практика программирования вот почему мы внедряем OnClickListener и написать все клики слушателей в OnClick(). , так что вам будет легко сделать какие-либо изменения в будущем.
else, если у вас есть одна кнопка, вы можете использовать setOnClickListener().
Разница между этими двумя не слишком велика. Его все о хорошей практике кодирования в Android. :)
Все в порядке, но я думаю, что реализация интерфейса, а затем передача с использованием этого означает, что мы создаем целую ссылку на конкретный виджет, чтобы, возможно, дублировать все накладные расходы памяти, связанные с активностью. в то время как при прохождении интерфейса как анонимного класса мы просто передаем конкретный интерфейс, а не активность. –
Вы также можете использовать
android:onClick = "ButtonOne"
атрибут в XML file.its легко !!
Я не прошу, что легко, я просто думаю об этом в другой перспективе, это управление памятью. –
AFAIK все три подхода используют почти ту же память. Вопрос, который следует учитывать, - это хорошая практика кодирования. Это зависит от ситуаций. реализация View.OnClickListener и использование android: onClick = "ButtonOne" предпочтительнее, чем использование setOnClickListner для каждой кнопки, на мой взгляд. –
Лучший вариант - реализовать View.OnClickListener. это уменьшит некоторые строки кода и легко удерживает все события кликов в одном блоке. – Nas
@ Нас, я знаю это, но я интересуюсь потреблением памяти. –
Вероятно, это уменьшит объем памяти (объем) в вашем размере файла, однако оба они будут относиться к одному и тому же классу и будут работать одинаково, поэтому он выделяет одинаковый объем памяти (ОЗУ). – Nas