!!!コントロール (2012/07/22)
XML形式で指定できる各種コントロール類についての覚書。
!!コントロールの種類
*ボタン (Button/ImageButton)
*テキスト入力 (EditText)
*テキスト表示(TextView)
*チェックボックス (CheckBox)
*ラジオボタン (RadioGroup/RadioButton)
*トグルボタン (ToggleButton)
*コンボボックス相当 (Spinner)
*描画領域 (ImageView)
*カメラで使う? (FrameLayout)
!!ボタンの処理
ボタンを配置して、選択したら何かアクションを起こす一連の流れを記載。
!レイアウトのxmlの記載
ボタン1つは「layout/xxx.xml」にて以下のように記載。
「android:id="@+id/test_but"」にて、自動で割り当てられるIDとボタン名(test_but)を指定。
「android:layout_width/android:layout_height」については、「[[レイアウト|layout_ui_android]]」を参照。
「android:text="@string/test_but"」は表示されるボタン名。これは、別途values/strings.xmlのxmlファイルにて列挙しているテキストを参照している。
「values/strings.xml」は以下のようになっている。
layoutTest
Settings
layoutTest
ボタンテスト
「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関数が呼ばれる。
上記の例では「タイトル/メッセージです。」とメッセージが表示される。