Enterボタンを押すとキーボードが開かれるのを停止しますか?
-
20-12-2019 - |
質問
ボタンの上に座っている数値縁組を持つ活動があります。
私はあなたが編集テキストをクリックしてハードキーボードを使っていくつかの番号を入力した場合、ハードエンターを押すと、編集テキストの下のボタンにフォーカスが移動し、QWERTYキーボードが表示されます。どうやって起こるのをやめるには?
次のように入力キーを制御しようとしました。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activityEnterAmt);
final EditText editText = (EditText) findViewById(R.id.editTextEnterAmt);
editText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if ((event != null && (event.getKeyCode() == KeyEvent.KEYCODE_ENTER)) || (actionId == EditorInfo.IME_ACTION_DONE)) {
Log.i("Tag", "Enter pressed or IME Action Submit pressed");
saveButtonClick(editText);
}
return false;
}
});
}
.
しかし、Enterキーを押したときにキーボードを開くのを止めたいと思います。私はそれがこれをやっている理由は本当にわかりませんか?
ありがとう
解決
edittextがフォーカスを失うとソフトキーボードを閉じることでこの問題を修正しました:
editText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (v == editText) {
if (hasFocus) {
((InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE)).showSoftInput(editText,
InputMethodManager.SHOW_FORCED); // open keyboard
} else {
((InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE)).hideSoftInputFromWindow(
editText.getWindowToken(), 0); // close keyboard
}
}
}
});
. 所属していません StackOverflow