作って学べる
プログラミング講座
アプリを作りながら学習
自分のペースですぐに始められる
困ったら何回でも質問可能

【Android Studio】ボタンのクリックイベントの書き方 – Java編

Sara

ボタンをクリックしたときの処理を書く方法は

  1. OnClickListener を実装する
  2. 匿名クラスを使う
  3. onClick 属性を使う(非推奨)

の3通りがあります。

この記事では簡単なサンプルアプリを用意して、それぞれのコードの書き方を紹介していきます。

Kotlin はこちら

準備

開発環境

Android StudioGiraffe | 2022.3.1
Android EmulatorNexus 4(API 34)
compileSdk / targetSdk33
minSdk19

サンプルアプリの用意

Sample という名前のプロジェクトを作成して、以下のファイルがあることを前提に進めていきます。

  • activity_main.xml
  • MainActivity.java

activity_main.xml にはボタンを3つ用意して、それぞれのボタンをタップしたら Snackbar を表示するコードを書いていきます。

【アプリ画面】

方法① OnClickListener を実装する

ボタンが1つの場合

まずは「ボタン1」にクリックイベントを実装してみます。

MainActivity.java に1・8・11~14行目のコードを追加・変更します。

ここでは

  1. インタフェースを実装(1行目)
  2. ボタンにクリックリスナーをセット(8行目)
  3. onClick メソッドを用意(11~14行目)

を行なっています。

View.OnClickListener インタフェースを実装したら、onClick メソッドを追加する必要があります。

またボタンとクリックリスナーを紐づけるための8行目のコードを忘れないようにしましょう。

アプリを実行してみましょう。

「ボタン1」をタップすると画面下部に Snackbar が表示されます。

ボタンが複数ある場合

ボタンが複数ある場合は「どのボタンが押されたのか」を判定する必要があります。

btn2, btn3 にも同じようにクリックリスナーをセットして、onClick メソッドを書き換えます。

「どのボタンが押されたのか」は押されたボタンの ID を使って判定します。

押されたボタンの ID は v.getId() で取得できます。

アプリを実行して、タップしたボタンによってメッセージが変わっているか確認しましょう。

方法② 匿名クラスを使う

ボタンが1つの場合

まずは「ボタン1」にクリックイベントを実装してみます。

MainActivity.java を開いて8~13行目を追加します。

方法①では OnClickListener インタフェースを実装しましたが、この方法では匿名クラスとして書いています。

アプリを実行して「ボタン1」をタップすると画面下部に Snackbar が表示されます。

ボタンが複数ある場合

btn2, btn3 も同じように書くことができます。

方法③ onClick 属性を使う(非推奨)

Button ビューの onClick 属性に呼び出すメソッドを指定する方法は非推奨になりました。

これはコードを難読化する設定をしたときに影響が出る可能性があることが主な理由です。今後は使用しないようにしましょう。

<Button
        android:id="@+id/btn1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="ボタン1"
        android:onClick="showMessage" />

まとめ

クリックイベントの書き方
  1. OnClickListener を実装する
  2. 匿名クラスを使う

たくさん書き方があるのでどれを使えば良いか迷うかもしれませんが、私の場合は以下を目安にしています。

  • ボタンが1つで実行するコードが少ない → 方法 ②
  • ボタンが複数で実行するコードが似ている → 方法 ①
  • 実行するコードが多く、実行内容も大きく異なる → 方法 ① か ②で、ボタンごとにメソッドを用意して呼び出す

「絶対にこれを使う!」というのはありませんが、非推奨になった方法は使用を控えましょう。

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
ABOUT ME
Sara
書籍やオンライン講座でプログラミングを勉強してフリーランスのプログラマーになりました。
このサイトでは「わかりやすく・シンプル」をモットーに、プログラミングの基礎からアプリ開発まで紹介します。
独学でプログラミングを勉強をしている方、基礎は勉強したけれど次に何をすれば良いか分からない...という方のお役に立てるサイトを目指しています。
主な使用言語:Java / Kotlin / PHP
>> 詳しいプロフィールはこちら
>> 書籍を出版しました!
>> お問い合わせはこちら
本格的に学びたい方へ

Code for Fun プログラミング講座

Code for Fun プログラミング講座では、プログラミングの基礎からアプリ開発まで学ぶことができます。

わかりやすく・シンプルをモットーに

  • 同じコードを書けば必ず完成できること
  • 専門用語を使いすぎないこと

を重視しています。

POINT 01

動くコード

プログラミングの文法だけを学んでも、そこから動くアプリを開発をするのは難しいです。

Code for Fun のプログラミング講座では、ゲームやカレンダーなど「アプリとして機能するもの」を作りながらプログラミングを学ぶことができます。

POINT 02

自分のペースで

オンライン講座なので、ご自身のペースで学習を進めて頂けます。

分からないことがあっても、前のレッスンに戻ることができるので安心です。

お申し込みしたその日からからすぐに始めることができます。

POINT 03

個別サポート

プログラミング学習では、エラーが起きることはよくあります。そんな時はお気軽にお問い合わせください!

コメント欄またはメールによるサポートを回数無制限でご利用頂けます。(*講座に関連するご質問のみ対応)

今すぐ無料でお試し

0
この記事にコメントするx
記事URLをコピーしました