I持って私のアプリでのEditTextフィールド:Kindleの火災のキーボードボタン
<EditText
android:id="@+id/task_buy_edit_mass_editText1"
android:minWidth="100dip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="numberDecimal"
android:imeOptions="actionDone" >
</EditText>
の問題は、私のKindleの火災、ユーザーはEditText
が何の完了]ボタンを持っていない編集したいときに表示されるキーボード、上だけで私は上のスクリーンショットで強調表示「隠すキーボード」ボタンを傍受することができれば問題ないだろうソフトキーボード
を隠しボタン。しかし、OnEditorActionListener
を私がEditText
に添付しているようには見えないので、実際のレイアウトで自分の「完了」ボタンを押して、EditTextから離れていくことをやめて、キーボードを隠し、数に起因するすべての変更が
「隠すキーボード」ボタンを傍受する方法はあります、またはいくつかの代替ソリューションがある
を変更させますか?ところで、私は他の場所で何imeOptionsを持っていないもinputTypeを指定します私のアプリで正規のEditTextビューを持っており、それはリターンキー
を持っているここで参照するために、残りのコードです:
editText.setOnEditorActionListener(new OnEditorActionListener(){
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if(actionId==EditorInfo.IME_ACTION_DONE || actionId==EditorInfo.IME_ACTION_NEXT || actionId==EditorInfo.IME_NULL || event.getKeyCode()==KeyEvent.FLAG_EDITOR_ACTION || event.getKeyCode()==KeyEvent.KEYCODE_ENTER){
closeKeyboard(v, done_button);
return true;
}
return false;
}});
// set done button for keyboards without correct IME options
final EditText finalEditText = editText;
editText.setOnTouchListener(new OnTouchListener(){
@Override
public boolean onTouch(View v, MotionEvent event) {
done_button.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
closeKeyboard(finalEditText, v);
}});
done_button.setVisibility(View.VISIBLE);
return false;
}
});
。
private void closeKeyboard(TextView v, View buttonv){
demand.setAmount(Double.parseDouble((v.getText().toString()))); // update the game
// close keyboard
InputMethodManager inputManager = (InputMethodManager) v.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
inputManager.hideSoftInputFromWindow(v.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
v.clearFocus();
buttonv.setVisibility(View.GONE);
}
StackOverflowはプログラミングに関する質問です。質問はしていません。 IMEは 'android:imeOptions =" actionDone "を尊重する必要はありません。あなたが火でこれを見ているかもしれませんが、問題はそれよりも一般的です。 – CommonsWare
私は知っています。私はKindle Fireの解決策を探しています。しかし、私はこれは新しいゼリー上の問題を引き起こすことを発見しました、のEditTextに単一行=「真」:inputType =「textMultiLine」とアンドロイド:私はあなたがアンドロイドを追加してみてくださいすることができ –
を求めていた、まさにそれをより明確にするために私の答えを編集しましたBeanデバイス。 –