OnClickListenerはいらんのですね
ボタンにイベントメソッドを実装する場合、
OnClickListenerをセットして、そのOnClickListenerを実装し・・・・・
ってやってたけど、onClickはXMLに書けるらしい。
こうなる。
ただそれだけ。
登録ボタンを押した時、いつもならbutton.setOnClickListener()を使ってリスナを設定するのだけど、
レイアウト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"> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="right" android:layout_marginTop="10px" android:layout_marginBottom="10px"> <Button android:id="@+id/addButton" android:text="登録" android:textSize="12px" android:layout_width="80px" android:layout_height="40px" android:onClick="showRegistDialog"/> </LinearLayout> </LinearLayout>
android:onClickのとこね。
登録ボタンがクリックされたらshowRegistDialogメソッド呼んでねっていう記述になります。
で、Activity実装は以下
public class MainActivity extends Activity { @SuppressWarnings("unchecked") @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } public void showRegistDialog(View view) { AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setMessage("登録します!!"); builder.setNegativeButton("キャンセル", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { dialog.cancel(); } }); builder.show(); } }
該当のActivityを継承したクラスにXMLに記述したメソッド(今回はshowRegistDialog)を書きます。
引数はView型の変数1つ。
以上です。