2.1 ボタンのタップイベントを取得する

2章よりAndroidの基本的なプログラムの紹介を行っていきます。
まずは、ボタンのイベントの取得方法からです。
1章でボタンを作る方法は紹介しましたが、ここではそのイベントの取得方法について説明します。
まず、main.xml を開き、Buttonをドロップしてボタンを作ります。

タブをmain.xmlに変更してソースコードを表示します。

ここは特に変更する必要はないのですが、自分で変更出来る事を知るために少し変えてみましょう。
idを”@+id/sampleButton”に、
textを"サンプルボタン"に変更してみます。
ボタンや画像のViewの属性は先ほどのGUI画面でも変更出来ます。

変更したいViewを選択し、「プロパティ」から変更したい属性を変更します。
プロパティが表示されていない人は
「ウィンドウ」>「ビューの表示」>「その他」>「一般」タグ 内にある「プロパティ」を選択すれば表示できます。
ただ属性の数が多すぎてめまいがするので、普通にソースコードから変更した方が楽な気がします。お好きな方法でどうぞ。
さて、変更を加えたことで、ボタンのidは「sampleButton」という名前に、テキストは「サンプルボタン」になりました。
このボタンをActivityから参照してみましょう。
public class AndroidsCastleActivity extends Activity implements OnClickListener{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button btn = (Button)findViewById(R.id.sampleButton);
btn.setOnClickListener(this);
}
public void onClick(View v) {
Toast.makeText(this, "ボタンが押されました", Toast.LENGTH_LONG).show();
}
}
Activityからレイアウトで作ったViewを探すには「findViewById」を利用します。
引数にはIDを指定します。

エディタでボタンを作った際、Rクラスには自動的にこのボタンを識別する変数が追加されています。
引数にはこのIDを指定します。よって「R.id.sampleButton」となります。
ボタンがクリックされたイベントを取得するには「リスナー」を登録します。
ボタンが押された時、「onClick」というメソッドが呼ばれる仕組みです。
このonClickというメソッドがどこにあるか知らせるため、
Buttonクラスの setOnClickListener にonClickを実装しているクラスのインスタンスを知らせます。
今回はActivity自身に実装したので、thisを渡します。
このリスナーを実装するには、インターフェイス OnClickListener を実装すれば良いです。
サンプルプログラムのように、実装することで、Rクラスからボタンを探し、見つけたボタンに対し、
Activityに実装したonClickメソッドをボタンクリック時に呼ぶように設定できました。
では実行してみましょう。

ボタンを押すと、Toastが表示されたら成功です。
本章のプロジェクトはこちら