猫型iPS細胞研究所

Windows、Linux、iOS、DB、Network

Android

layoutのxmlに配置したボタンにクリックイベントを追加する

投稿日:2013年3月4日 更新日:

ボタンなどのビューは、コードで記述することもできますが、
やはりres/layout/xxx.xmlで作成するのが一般的です。
xmlで作成したビューに、はアクティビティのonCreateでリスナーを追加して、クリックイベントを受信できるようにするのがよいでしょう。

xml

res/layout/xxx.xmlで作成したビューには、アクティビティからアクセスできるようにidを付ける必要があります。

<?xml version="1.0" encoding="utf-8">
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" &gt;
    <TextView
        android:id="@+id/txtView1"
	    android:layout_width="wrap_content"
	    android:layout_height="wrap_content"
        /&gt;
</LinearLayout&gt;

アクティビティ

xmlを編集して保存すると、このidはgen/xxx/R.javaに自動で登録されます。
findViewByIdを使って、R.javaにあるidを通してビューにアクセスできるようになります。

クリックイベントの実際の処理は、OnClickListenerインターフェイスをimplementsして実装します。
サンプルでは、複数ボタンがあった場合に、一つのリスナーで処理できるように、tagに名前を設定しています。

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.xxx);
        ・・・・・・・
        Button btnTest = (Button)findViewById(R.id.txtView1);
        btnQuest.setTag("btnTest");
        btnQuest.setOnClickListener(new btnClickListener());
        ・・・・・・・
    }

    class btnClickListener implements OnClickListener{
		public void onClick(View v) {
			String btnName = (String)v.getTag();
			if(btnName.equals("btnTest")){
                                   //ここにボタンクリック時の処理				
			}else if(btnName.equals("btnTest2")){
                                   //ここにボタンクリック時の処理
			}
		}
    }

Gooleアドセンス用336

Gooleアドセンス用336

-Android
-

執筆者:

関連記事

Micro USB の充電用とデータ転送用

以前 「SonyEricssonXPERIA SO-01Bのドライバのインストール」 というものを書きました。 このどうしようもない端末は、MicroUSBにも問題があります。 しかもこの端末、古すぎ …

別スレッドから画面を制御するhandlerの使い方

別スレッドから画面(layout)を制御するにはhandlerを使用します。 制御したい画面を持つアクティビティに、handerの宣言をします。 宣言したhandlerはsendMessageメソッド …

アクティビティ間の画面遷移

アクティビティから別のアクティビティを呼びだすと、新しいアクティビティは上に重ねられた状態になり、今まで使用していたアクティビティは停止します。 そして新しいアクティビティが終了すると、元のアクティビ …

音声認識と音声合成(Text-To-Speech)

INDEX1 音声認識2 音声合成(Text-To-Speech)3 サンプル 音声認識 音声認識で注意しなくてはいけないのは、何語で認識させるかです。 つまり英語として認識させるか、日本語として認識 …

Windows XPでAndroidのエミュレーターが起動しない

PANIC: Could not open AVD config file このエラーが表示されているのは、 C:\Documents and Settings\[ユーザー名]\.android\av …