トップ 差分 一覧 ソース 検索 ヘルプ PDF RSS ログイン

control_ui_android

コントロール (2012/07/22)

XML形式で指定できる各種コントロール類についての覚書。

コントロールの種類

  • ボタン (Button/ImageButton)
  • テキスト入力 (EditText)
  • テキスト表示(TextView)
  • チェックボックス (CheckBox)
  • ラジオボタン (RadioGroup/RadioButton)
  • トグルボタン (ToggleButton)
  • コンボボックス相当 (Spinner)
  • 描画領域 (ImageView)
  • カメラで使う? (FrameLayout)

ボタンの処理

ボタンを配置して、選択したら何かアクションを起こす一連の流れを記載。

レイアウトのxmlの記載

ボタン1つは「layout/xxx.xml」にて以下のように記載。

<Button
    android:id="@+id/test_but"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/test_but" />

「android:id="@+id/test_but"」にて、自動で割り当てられるIDとボタン名(test_but)を指定。

「android:layout_width/android:layout_height」については、「レイアウト」を参照。

「android:text="@string/test_but"」は表示されるボタン名。これは、別途values/strings.xmlのxmlファイルにて列挙しているテキストを参照している。

「values/strings.xml」は以下のようになっている。

<resources>
    <string name="app_name">layoutTest</string>
    <string name="menu_settings">Settings</string>
    <string name="title_activity_main">layoutTest</string>
    <string name="test_but">ボタンテスト</string>
</resources>

「test_but」がボタンで参照している文字列。

Activity派生クラスでの記載

要:

import android.widget.Button;
import android.view.View;
import android.view.View.OnClickListener;
import android.app.AlertDialog;  // 確認用のAlertメッセージを表示する場合に必要

アプリケーションを開始するActivity派生クラスのonCreate関数にて、以下のようにしてボタンをfindViewByIdで探して、setOnClickListenerでボタンが押されたときのコールバッククラスを登録。

@Override
public void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.activity_main);

   // ボタンのイベントクラスを登録 
   ((Button) findViewById(R.id.test_but)).setOnClickListener(mPushButton);
}

そして、コールバックのクラス「mPushButton」を記載。

// ボタンが押された場合の処理
OnClickListener mPushButton = new OnClickListener() {
    public void onClick(View v) {
        // ボタンが押されたときに行う処理。ここでは確認用のAlertメッセージを表示
        AlertDialog.Builder builder = new AlertDialog.Builder(v.getContext());
        builder.setTitle("タイトル");
        builder.setMessage("メッセージです。");
        builder.create().show();    // メッセージを表示
    }
};

これで、ボタンが押された場合にOnClickListenerのonClick関数が呼ばれる。上記の例では「タイトル/メッセージです。」とメッセージが表示される。

Future's Laboratory 技術格納庫 2004-2013 Yutaka Yoshisaka.