ボタンクリックイベントを取得する
ボタンクリック時に何らかの処理を実行したい
ボタンクリックはユーザからの入力操作の1つです。アプリ側はこれをきっかけに画面を遷移したりデータを保存したりします。
今回は、入力操作の基本であるボタンクリックイベントを取得する方法について説明したいと思います。
ボタンクリック時のイベント取得方法
ボタンクリック時のイベントを取得する方法には大きく3つあります。
1.ボタンに OnClickListener インターフェースを実装する
2.アクティビティに OnClickListener インターフェースを実装する
3.レイアウトファイルにボタンクリック時のメソッドを記述する
以下で具体的に説明します。
1.ボタンに OnClickListener インターフェースを実装する
クリックイベントを取得したいボタンに OnClickListener インターフェースを実装します。
// クリックイベントを取得したいボタン Button button = (Button) findViewById(R.id.button); // ボタンに OnClickListener インターフェースを実装する button.setOnClickListener(new View.OnClickListener() { // クリック時に呼ばれるメソッド @Override public void onClick(View view) { Toast.makeText(MyActivity.this, "クリックされました!", Toast.LENGTH_LONG).show(); } });
これでボタンがクリックされたときに Toast を表示する処理を実行することができます。
クリックイベントを取得するボタンが少ない場合に最適な方法だと思います。
2.アクティビティに OnClickListener インターフェースを実装する
ボタンクリックイベントを取得したいアクティビティに implements で View.OnClickListener インターフェースを実装します。
public class MyActivity extends Activity implements View.OnClickListener{
ボタンがクリックされたときに呼ばれるメソッドを追加します。
// クリック時に呼ばれるメソッド public void onClick(View view){ switch (view.getId()) { case R.id.button: Toast.makeText(MyActivity.this, "クリックされました!", Toast.LENGTH_LONG).show(); break; } }
これでボタンがクリックされたときに Toast を表示する処理を実行することができます。
また、引数の view によりクリックイベントが発生したビューが分かるので、ボタンごとに実行させたい処理をまとめてこのメソッドに記述することができます。
3.レイアウトファイルにボタンクリック時のメソッドを記述する
レイアウトファイルの "onClick=" にクリックイベントを取得するメソッドを記述します。例では onButtonClick メソッドを指定しています。
<Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/lbl_button" android:onClick="onButtonClick" android:id="@+id/button" />
アクティビティにクリックイベントを取得するメソッドを追加します。
// クリック時に呼ばれるメソッド public void onButtonClick(View view){ switch (view.getId()) { case R.id.button: Toast.makeText(MyActivity.this, "クリックされました!", Toast.LENGTH_LONG).show(); break; } }
これでボタンがクリックされたときに Toast を表示する処理を実行することができます。
また、引数の view によりクリックイベントが発生したビューが分かるので、ボタンごとに実行させたい処理をまとめてこのメソッドに記述することができます。
この方法だと、ボタンやアクティビティに OnClickListener インターフェースを登録する必要がないのでプログラムコードとしてはスッキリします。ただし、レイアウトファイルに記述したメソッドとアクティビティのメソッドを一致させておく必要があるので、メンテナンス性は悪くなるかもしれません。
まとめ
ボタンクリックイベントを取得するには3種類の方法がありました。それぞれ実行結果は同じになりますが、実装方法には特徴があります。クリックイベントを取得したいボタンの個数やメンテナンスのしやすさを考慮した上で使い分けるのが良いと思います。
参考
Toast を使って画面に情報を表示する方法 - Android Studioでアプリ開発!
Android StudioではじめるAndroidプログラミング入門
- 作者: 掌田津耶乃
- 出版社/メーカー: 秀和システム
- 発売日: 2014/04
- メディア: 単行本
- この商品を含むブログ (1件) を見る
- 作者: 柴田文彦,川口仁
- 出版社/メーカー: インプレス
- 発売日: 2014/01/16
- メディア: Kindle版
- この商品を含むブログ (1件) を見る