- 締切済み
EditTextからフォーカスを外す処理
Androidのプログラミングで、EditText(入力widget)をExcelのセルのように5つ並べて計算させる画面があります。 XML上のEditTextは5つあり、下記はボタン[btnUpdate]をクリックしたとき、5つめのEditTextにフォーカスが1度あたる(カーソルが入る)ようになっています。 EditText editText5 = (EditText)findViewById(R.id.editText5); editText5.setOnFocusChangeListener(this); Button btnUpdate = (TextView)findViewById(R.id.btnUpdate); btnUpdate.setOnClickListener(this); btnUpdate.setOnFocusChangeListener(this); //以下、メソッド部 ==========================/ @Override public void onClick(View v) { if(v == btnUpdate) { editText5.requestFocus(); // EditText5にフォーカスをあてる (EditText同士の計算処理) //* ここにフォーカスが外れる記述をしたい */ } } カーソルがeditText5に入った状態(フォーカスがあたったまま)になると、editText1~5の数字が計算されるようになっています。 カーソルが点滅した状態で処理が終わるのですが、処理後はカーソル点滅をやめたいので、editTextからフォーカスをはずしたいと思っています。 質問:カーソルが消える(処理後フォーカスがすべてのEditTextから外れる)状態にする記述(requestFocus();の逆のメソッド)がわかりません。 よろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- m-take0220
- ベストアンサー率61% (480/785)
btnUpdate(に限らず別のオブジェクト)にフォーカスを与えれば、editText5からフォーカスは失われます。 フォーカスを失わせる命令を作るとすると、次にどのオブジェクトにフォーカスを持たせるかという問題が出てきます。他のオブジェクトがフォーカスを得る=現在のオブジェクトのフォーカスが失われる、としたほうがシステム的にも自然です。
お礼
回答ありがとうございました。 booleanのフラグを別途つくり、他のオブジェクトにフォーカスがあたったときfalseが得られる形でeditText5からフォーカスが外れた判定をすることにしました。