• 締切済み

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();の逆のメソッド)がわかりません。 よろしくお願いします。

みんなの回答

回答No.1

btnUpdate(に限らず別のオブジェクト)にフォーカスを与えれば、editText5からフォーカスは失われます。 フォーカスを失わせる命令を作るとすると、次にどのオブジェクトにフォーカスを持たせるかという問題が出てきます。他のオブジェクトがフォーカスを得る=現在のオブジェクトのフォーカスが失われる、としたほうがシステム的にも自然です。

monedge
質問者

お礼

回答ありがとうございました。 booleanのフラグを別途つくり、他のオブジェクトにフォーカスがあたったときfalseが得られる形でeditText5からフォーカスが外れた判定をすることにしました。

関連するQ&A