Рубрики
Без рубрики

Краткий совет – Как привязать функцию к кнопке?

Привет! Меня зовут Ксавье Жувено, и в этом небольшом посте я собираюсь объяснить, как привязать функцию к a… С тегом todayilearned, android, мобильная разработка, java.

Привет! Меня зовут Ксавье Жувено, и в этом небольшом посте я собираюсь объяснить, как привязать функцию к кнопке.

Самореклама : Вы можете найти другие статьи по разработке 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, и вы можете создать один обратный вызов для каждой вашей кнопки, не делая другой метод нечитаемым.

Я определенно рекомендую вам использовать этот 😉

Спасибо вам всем за то, что прочитали эту статью, И до моей следующей статьи желаю вам отличного дня 😉

Интересные ссылки

Оригинал: “https://dev.to/10xlearner/quick-tip-how-to-bind-a-function-to-a-button-2g1e”