Привет! Меня зовут Ксавье Жувено, и в этом небольшом посте я собираюсь объяснить, как привязать функцию к кнопке.
Самореклама : Вы можете найти другие статьи по разработке Android на моем веб-сайте 😉
Обработка ваших кнопок щелчок в действии
Существует два способа обработки нажатия кнопок в вашем java-коде activity.
Наследование
Первый метод, о котором я хочу с вами поговорить, может позволить вам обрабатывать нажатия на все кнопки вашего действия в одной функции. Чтобы сделать это, вы должны сделать свою активность implements View. OnClickListener
и переопределить метод onClick
:
public class MainActivity extends AppCompatActivity implements View.OnClickListener{ @Override protected void onCreate(Bundle savedInstanceState) { // ... Button bt = findViewById(R.id.button); bt.setOnClickListener(this); // ... } @Override public void onClick(View v) { if (v.getId() == R.id.button) { // Do something } } }
В этом коде вы указываете, что ваш прослушиватель кнопок является вашим действием во время создания действия. Затем, когда пользователь нажмет на кнопку, будет вызван метод onClick
. В этой функции вы посмотрите на идентификатор элемента, чтобы узнать, на какую кнопку нажали, и отреагируете соответствующим образом.
Лично это мой наименее любимый метод. Я обнаружил, что чем больше кнопок у вас в интерфейсе, тем менее читаемой становится функция onClick
. 😢
Привязка функции к созданию действия
Этот второй метод позволяет вам задавать обратные вызовы кнопок во время создания действия. Это выглядит так:
public class MainActivity extends AppCompatActivity implements View.OnClickListener{ @Override protected void onCreate(Bundle savedInstanceState) { // ... Button bt = findViewById(R.id.button); bt.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // Do something } }); // ... } }
Преимущества этого метода по сравнению с первым заключаются в том, что вам не нужно использовать свой идентификатор кнопки, чтобы проверить, что делать. Вы напрямую знаете, к какой кнопке относится ваш обратный вызов.
Но чем больше у вас кнопок, тем менее читаемым будет ваш метод onCreate
. 😢
Использование макета кнопки
Последний метод, о котором я хочу поговорить, состоит в использовании XML-определения кнопки для указания обратного вызова кнопки. Действительно, вы можете указать, какой метод вашего действия вы хотите вызвать, добавив атрибут android:onClick
в определение button XML. Это может выглядеть следующим образом:
public class MainActivity extends AppCompatActivity implements View.OnClickListener{ // ... public void onMyButtonClick(View v) { // Do something } // ... }
Лично я нахожу этот метод лучшим. Это позволяет вам отделить место, где реализован обратный вызов, от места, где он связан с кнопкой. Вам не нужно проверять, на какую кнопку нажата, поскольку вы знаете это из своего XML, и вы можете создать один обратный вызов для каждой вашей кнопки, не делая другой метод нечитаемым.
Я определенно рекомендую вам использовать этот 😉
Спасибо вам всем за то, что прочитали эту статью, И до моей следующей статьи желаю вам отличного дня 😉
Интересные ссылки
- андроид: Документация onClick
- Документация OnClickListener
- Beesapps французский пример
- 10-кратный веб-сайт для учащихся
Оригинал: “https://dev.to/10xlearner/quick-tip-how-to-bind-a-function-to-a-button-2g1e”