■ はじめに
Android で選択するコンポーネントについて、学ぶ。
目次
【1】ラジオボタン / RadioGroup・RadioButton 【2】スピナー(プルダウン) / Spinner 【3】トグルスイッチ / Switch
【1】ラジオボタン / RadioGroup・RadioButton
デザイン部に関して
[1] RadioGroup を追加する << ★重要★ [2] [1] の 子供として、RadioButton を追加する ※ デフォルトでチェックを付けたい場合は、「checked : true」
値の取得方法
その1:OnCheckedChangeListener と onCheckedChanged() を使う
RadioGroup radioGroup = (RadioGroup) findViewById(R.id.radioGroup1); radioGroup1.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup group, int checkedId) { if (checkedId == -1) { return; } RadioButton selectedRadioButton = (RadioButton) findViewById(checkedId); String text = radioButton.getText().toString(); Log.v("checked", text); } });
その2:getCheckedRadioButtonId()を使う
int checkedId = radioGroup.getCheckedRadioButtonId(); // 後は、その1と同じ
参考文献
http://tkm0on.hatenablog.com/entry/2015/06/03/115743
http://www.sakc.jp/blog/archives/24201
【2】スピナー(プルダウン) / Spinner
デザイン部に関して
[1] [Container]-[Spinner] でスピナーを追加する [2] res/values を右クリックして、[New]-[Values Resource File]を選択し「OK」押下 + File name : 任意のファイル名(今回は、「components.xml」) [3] ファイルを修正する(以下の「res/values/components.xml」を参照) [4] [1] で追加したSpinnerの「entries」を選択し、[3]で追加したリストを選択 (今回は、「@array/max_words_list」)
res/values/components.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="max_words_list"> <item>5</item> <item>10</item> <item>15</item> <item>20</item> <item>50</item> <item>100</item> </string-array> </resources>
構文
値設定
// 設定 var index = 0 spinner.setSelection(index)
イベント処理
spinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener{ // 選択時 override fun onItemSelected( parent: AdapterView<*>?, view: View?, position: Int, id: Long ) { val targetSpinner = parent as Spinner // } // 既に選択された項目を選択した場合 override fun onNothingSelected(parent: AdapterView<*>?) { // Do nothing } }
サンプル
* 以下の関連記事を参照のこと
https://dk521123.hatenablog.com/entry/2013/10/02/005640
参考文献
https://developer.android.com/guide/topics/ui/controls/spinner?hl=ja
【3】トグルスイッチ / Switch
* On/Off (true/false) を切り替える
構文
値取得/設定
switch.isChecked = true/false
イベント処理
switch.setOnCheckedChangeListener { _, isChecked -> // isChecked で On/Off を切り替える }
参考文献
https://qiita.com/kiyo1219/items/a6517e437c2ca6dda634
■ 関連記事
レイアウト ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2015/08/23/165632
画面コンポーネント / EditText RatingBar etc ~ 入力 ~
https://dk521123.hatenablog.com/entry/2020/08/20/000000
設定ファイルの保存 ~ SharedPreferences ~
https://dk521123.hatenablog.com/entry/2013/10/02/005640
Kotlin ~ 基本編 / Enum・列挙型関連 ~
https://dk521123.hatenablog.com/entry/2020/08/10/125112