こんにちは。YOSHITAKA(@YOSHITA19704216)です。
- Kotlinで全選択する方法の3種類がわかります。
Contents
テキストボックスを全選択状態にする方法
全選択の方法は複数ある
- 3種類の方法で試しましたが、起動する場合と起動しない場合があるので、ご自身の環境で試してみてください。
1つ目 actibity_main.xmlに記述
layoutフォルダの画面を表示しているファイルを選択します。
基本はactibity_main.xmlだと思います。
その中でedittextの部分を探してください。
余計な部分はだいぶ省きましたが、一番下の行の部分が大事です。
<EditText android:id="@+id/editTextNumberDecimal" android:layout_width="match_parent" android:layout_height="50dp" android:layout_gravity="center" android:selectAllOnFocus="true" />
- これだけでは自分は設定できなかったので下の方法も追加して設定しました。
2つめ フォーカスチェンジリスナー
editTextNumberDecimalはlayoutファイルの部分の
android:id="@+id/editTextNumberDecimal"
で自分で設定した部分を見てください。
MainActibity.ktファイルの中のoverride fun onCreateのなかで以下のように記述します。
editTextNumberDecimal.onFocusChangeListener = OnFocusChangeListener { view, hasFocus -> if (hasFocus) { //フォーカスが当たった処理 editTextNumberDecimal.requestFocus() } else { //フォーカスが外れた処理 editTextNumberDecimal.clearFocus() } }
- フォーカスが当たったときと当たってないときの処理を書いてみました。
- 自動フォーマットででたのでなぜか動きました。
3つめ クリックイベントリスナーでの設定
editTextNumberDecimalはlayoutファイルの部分の
android:id="@+id/editTextNumberDecimal"
で自分で設定した部分を見てください。
MainActibity.ktファイルの中のoverride fun onCreateのなかで以下のように記述します。
イベントリスナーでも設定しています
editTextNumberDecimal.setOnClickListener() { editTextNumberDecimal.setSelectAllOnFocus(true) editTextNumberDecimal.selectAll() }
- スタックオーバーフローでの参考を見て、イベントで設定してみた方法です。
まとめ
今回はKotlinでテキストボックスを全選択上にする方法についてお伝えしました。
※プログラミングは習得中ですので、参考程度に記事を読んでください。
参考はこちら
https://stackoverflow.com/questions/4669464/select-all-text-inside-edittext-when-it-gets-focus