EditTextのFocusableについて
EditTextで、通常は編集が不能な状態にしておき、ボタンを押すことで編集ができるようになるという動作
XMLの設定
通常は編集が不能なEditTextの属性に追加する
初期状態、編集ができないようにする。
さらに、フォーカスも得られないようにする。
android:enabled="false" android:focusable="false"
ボタンを押されたときの処理
EditText txtTitle = findById(R.id.txtTitle); txtTitle.setFocusable(true); txtTitle.setFocusableInTouchMode(true); txtTitle.setEnabled(true);
はまった…!
フォーカスを得られるようにするためにEditText::setFocusable(:boolean)だけすればいいのかなと思ったけど、それだけだとタップでフォーカスが移ることはない。
EditText::setFocusableInTouchMode(:boolean)までしないといけないことに20分くらい気づかなかった。
追記
フォーカスと編集を有効にしたあとに、フォーカス移動すると
、ユーザに優しいですね。
txtTitle.requestFocus();