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.