クリックされたイベントを拾う

クリックされたイベントを拾う方法を記載します。

レイアウトファイルが下記のようにあったとし、

TextViewがクリックされたときにイベントを拾いたいとします。

/res/layout/main.xml

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent">

<TextView android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:id="@+id/tvProgressDialog"

android:text="ProgressDialog" />

</LinearLayout>

まず、上記のとおりIDを割り当てます。

/src/・・・/ActivityMain.java

package androidappls.site.com.google.sites.sample;

import android.app.Activity;

import android.os.Bundle;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.TextView;

import android.widget.Toast;

public class ActivityMain extends Activity implements OnClickListener {

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

// ビューを取得

TextView tvProgressDialog = (TextView)findViewById(R.id.tvProgressDialog);

// クリックを有効にする

tvProgressDialog.setClickable(true);

// クリックイベントのリスナーをセット

tvProgressDialog.setOnClickListener(this);

}

@Override

public void onClick(View v) {

if (v.getId() == R.id.tvProgressDialog) {

Toast.makeText(this, "tvProgressDialog", Toast.LENGTH_SHORT).show();

}

}

}

Activityクラスに OnClickListenerimplements し、

onCreate内で 対象となるビューを取得後、クリックリスナーをセットします。

※TextViewの場合、クリックを有効にするため setClickable で true に設定する必要があります。

あとはActivity内に onClick 関数を追加し、

引数で渡ってきたViewのIDをチェックすればイベントを拾うことができます。