minimize

事業拡大のため、新しい仲間を募集しています。
→詳しくはこちら

UI 関連のイベントは、Swing や SWT とほぼ同じように記述します。

ボタン押下時の処理

Activity.onCreate() の中で、以下のようなコードを記述します。

button = (Button)findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
        // ボタンを押したときの処理
    }
});

OnClickListener には2種類ある(DialogInterface.OnClickListener) ので
OnClickListener ではなく View.OnClickListener と書いています。

Android 1.6

Android 1.6 以降では、xml ファイルで onClick メソッドを指定することができます。

layout.xml

<Button android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello, I am a Button" android:onClick="myClickHandler" />

Activity.java

public void myClickHandler(View target) {
    showMessage("ok");
}

フォーカス移動をカスタマイズする

画面内にある Widget 間をカーソルキーなどで移動するとき
通常は自動的に移動先が決定されます。
これはカスタマイズすることが出来ます。

<LinearLayout
    android:orientation="vertical"
    ... >
  <Button android:id="@+id/top"
          android:nextFocusUp="@+id/bottom"
          ... />
  <Button android:id="@+id/bottom"
          android:nextFocusDown="@+id/top"
          ... />
</LinearLayout>

最初のボタンでは、FocusUp 時に bottom ボタンへフォーカスを移動させることを指示しています。
次のボタンでは、FocusDown 時に top ボタンへフォーカスを移動させることを指示しています。