[Android] ボタンをクリックした時にトーストメッセージを表示する

今回のレッスンでは、前回のレッスンで作った画面のボタンに対して、クリックした時にトーストメッセージが表示するように変更を行います。
広 告
目次
前提条件
- 「簡単な画面を作成する」が実施済であること
動作確認端末
- Google Nexus 5 – 5.0.0 – API21(エミュレータ)
1. ボタンクリックした時の実行されるメソッドを定義する
ボタンクリックした時にメソッド(処理)を実行させるためには、res/layout/activity_main.xml
の<Button>
タグを以下のように変更します。
res/layout/activity_main.xml
<Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/button_send" android:onClick="sendMessage" />
android:onClick
属性の”sendMessage”
の値は、ボタンクリック時にシステムから呼ばれるActivity内のメソッド名になります。
Note : ここまでの状態でアプリを実行しボタンをクリックすると
java.lang.NoSuchMethodException
という例外が発生します。これはonClick
属性で定義したメソッドがまだ実装されていないからです。
次にボタンクリック時に呼び出されるメソッドをMainActivity.java内に追加します。
java/com.mycompany.myapp/MainActivity.java
import android.view.View; ... public void sendMessage(View view) { // ボタンクリック時に実行される // 引数のViewはクリックされたボタンのViewオブジェクト }
ボタンクリック時に呼ばれるメソッドは、以下の条件を満たしていなければなりません。
- publicメソッドであること
- 戻り値の型はvoid型であること
- 引数は1つで型はView型であること
ボタンクリック時に処理を実行させる方法については別の方法もあります。詳しい説明についてはこちらを参照してください。
2. トーストメッセージを表示するようにする
ボタンがクリックされた時に画面にトーストメッセージが表示されるように処理を定義します。トーストメッセージを表示させるために、以下の1行をsendMessage()
メソッド内に追加します。
java/com.mycompany.myapp/MainActivity.java
import android.widget.Toast; import android.view.View; ... public void sendMessage(View view) { // ボタンクリック時に実行される // 引数のViewはクリックされたボタンのViewオブジェクト Toast.makeText(getApplicationContext(),"ボタンがクリックされました。", Toast.LENGTH_SHORT).show(); }
トーストメッセージの表示処理について詳しい説明はこちらを参照してください。
アプリを実行し、画面上のボタンをクリックしてみてください。すると以下のように画面上にトーストメッセージが表示されます。

以上で完成です。次回のレッスンでは、テキストフィールドに入力された値をトーストメッセージに表示するように処理を変更します。