公開日:2019年11月1日
更新日:2019年11月15日
目次
ここではボタンをクリックした時のイベント処理について説明します。
1. イベント処理について
「何かをインプットする」、「何かをクリックする」、「何かをタッチする」のような特定の行動をイベントと呼び、イベントによって呼び出される処理のことをイベント処理といいます。例えば、「ボタンをクリックした」時に「クリック完了と表示させる」場合を考えてみます。この時、「ボタンをクリックした」がイベント、「クリック完了と表示させる」がイベント処理になります。ユーザはこのイベントに対し、任意に処理内容を記述することで、目的のプログラムを実現させることになります。
・イベント発生の流れ
下記は、ボタンクリック時に画面に「クリック完了」と表示させるときのイベント発生の流れです。参考までにどうぞ。
ボタンをクリック
↓
↓イベントが発生しました
↓(後の処理はお願いします)
↓
画面に「クリック完了」と表示
2. イベント処理の実装
下図はボタンとテキストビューで構成された簡易な画面であり、ボタンがクリックされた時にテキストビューに「クリック完了」という文字列を表示するプログラムです。このプログラムをもとにイベント処理の実装について説明します。
~actvity_main.xml~
「actvity_main.xml」のプログラムは下記のようになります。
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onClick="onClickButton"
android:text="ボタン1"
android:textSize="24"
tools:layout_editor_absoluteX="54dp"
tools:layout_editor_absoluteY="95dp" />
<TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="TextView"
android:textSize="24"
tools:layout_editor_absoluteX="120dp"
tools:layout_editor_absoluteY="200dp" />
</LinearLayout>
中身について簡単に説明します。
下記のコードはボタンがクリックされた時に呼び出される関数で、処理内容は「MainActivity.java」の「onClickButton」に記述します。関数名は任意に指定可能です。
android:onClick="onClickButton"
~MainActivity.java~
「MainActivity.java」のプログラムは下記のようになります。
package com.example.test;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
/* ボタンクリックイベント */
public void onClickButton(View v) {
TextView tv_total_saving;
/* テキストビューに文字列を設定 */
tv_total_saving = (TextView)findViewById(R.id.textView);
tv_total_saving.setText("クリック完了");
}
}
中身について簡単に説明します。
「onClickButton」がボタンクリック時にイベントとして呼び出される関数です。この関数内に実際の処理内容を記述します。
/* ボタンクリックイベント */
public void onClickButton(View v) {
TextView tv_total_saving;
/* テキストビューに文字列を設定 */
tv_total_saving = (TextView)findViewById(R.id.textView);
tv_total_saving.setText("クリック完了");
}
下記の「findViewById」では、画面要素固有のIDを引数として指定することにより、エディットテキストやテキストビューへの読み書きが可能になります。今回はテキストビューへの書き込みです。
/* テキストビューに文字列を設定 */
tv_total_saving = (TextView)findViewById(R.id.textView);
tv_total_saving.setText("クリック完了");
画面要素固有のIDは「activity_main.xml」内に記述されています。
<TextView
android:id="@+id/textView" ⇒ 画面要素固有のID
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="TextView"
android:textSize="18sp"
tools:layout_editor_absoluteX="120dp"
tools:layout_editor_absoluteY="200dp" />
「android:id=””@+id/」以降が画面要素固有のIDで、IDは任意に指定することができます。
android:id="@+id/textView"
上記のイベント処理や「findViewById」はアプリ開発において使用頻度が高いと思われるので(私もまだまだ初心者ですので断定はできかねます)、覚えておいても損はないでしょう。
まとめ
今回はボタンクリック時のイベント実装について学びました。それらをまとめた内容は下記の通りになります。
・イベントとイベント処理
イベントとは「ボタンをクリックする」、「画面をタッチする」などの特定の行動を指し、イベント処理とは「イベントによって呼び出される処理」のことを指します。
・イベント処理の実装
イベント処理の実装は「actvity_main.xml」でイベント処理用の関数を設定し、「MainActivity.java」でイベント処理の中身を記述します。
・値の読み書き
エディットテキストからの値の読み込みやテキストビューへの値の書き込みは「findViewById」を用いて行います。
android studioでは画面をタッチしたなど、複数のイベントが用意されています。準備ができ次第、このブログでも内容を公開したいと思いますので、その時はよろしくお願いします。