STOP Keyboard dall'apertura quando viene premuto il pulsante ENTER?
-
20-12-2019 - |
Domanda
Ho un'attività con un numero numerico seduto sopra un pulsante.
Ho notato che se fai clic nel testo di modifica e utilizzare la tastiera rigida per digitare alcuni numeri, quindi premere l'immissione rigida, che sposta la messa a fuoco sul pulsante sotto il testo di modifica e viene visualizzata una tastiera QWERTY.Come posso fermare questo?
Ho provato a controllare il tasto ENTER con quanto segue:
@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;
}
});
}
.
Ma voglio davvero interromperlo ad aprire la tastiera quando premi Invio.Non capisco davvero perché sta facendo questo?
Grazie
Soluzione
Ho risolto questo problema chiudendo la tastiera morbida quando l'editext perde la messa a fuoco:
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
}
}
}
});
. Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow