準備
(なし)
デザイン
1. main.xml にボタン (button1) を配置します。
2. main.xml にボタン (button2) を配置します。
サンプルコード (Java)
package com.test.test01; import android.app.Activity; import android.app.AlertDialog; import android.os.Bundle; import android.view.View; import android.widget.Button; public class Test01Activity extends Activity { private Button b1; private Button b2; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); b1 = (Button)findViewById(R.id.button1); b1.setOnClickListener(b1_listener); b2 = (Button)findViewById(R.id.button2); b2.setOnClickListener(b2_listener); } Button.OnClickListener b1_listener = new Button.OnClickListener() { public void onClick(View view) { AlertDialog.Builder ad = new AlertDialog.Builder(Test01Activity.this); ad.setTitle("TEST01"); ad.setMessage("1 番目のボタンがクリックされました。"); ad.setPositiveButton("OK", null); ad.show(); } }; Button.OnClickListener b2_listener = new Button.OnClickListener() { public void onClick(View view) { AlertDialog.Builder ad = new AlertDialog.Builder(Test01Activity.this); ad.setTitle("TEST01"); ad.setMessage("2 番目のボタンがクリックされました。"); ad.setPositiveButton("OK", null); ad.show(); } }; }
解説
イベント・リスナーを使用して複数のボタンを扱っています。ひとつの Activity 内に配置できる OnClick イベントは一つのため、各ボタン用のリスナーオブジェクトを作成して、その中に OnClick イベントを作成しています。
AlertDialog.Builder の引数は、Activity 自体なので、this だけを指定すると、イベント・リスナーを指定することになりますので、Test01Activity.this のように指定しています。
この場合、Test01Activity クラスではイベント・リスナーは扱わないため、implements OnClickListener によるイベント・リスナーの実装は不要です。