Android: Ingresso trasparente della tastiera quando EDITTEXT è cancellato
-
23-12-2019 - |
Domanda
Voglio impostare un separatore automatico per il mio editext. L'ho fatto con un textwatcher. In
public void afterTextChanged(Editable s)
.
Salva il valore corrente del mio editext, formattalo con
@Override
public void afterTextChanged(Editable s) {
InputField.this.removeTextChangedListener(this);
double tmp = getDoubleValue();
s.clear();
s.append(DecimalFormat.getInstance(Locale.GERMAN).format(tmp));
InputField.this.addTextChangedListener(this);
}
});
.
Ma la tastiera dalla mia scheda Galaxy non si preoccupa se svuoto il modificabile. Mantiene l'ingresso corrente e riempie l'editext con il numero completo. Un breve esempio:
I Digitare "1", la tastiera inserisce "1", l'editext mostra "1".
Digioso "2", la tastiera inserisce "12", l'editext mostra "112"
Digioso "3", la tastiera inserisce "123", gli editext mostrano "112.123"
Premo il pulsante Elimina, la tastiera inserisce "12", EDITText mostra "11.212.312"
Preme di nuovo il tasto Elimina, la tastiera inserisce "1", EDITText mostra "112.123.121"
La mia domanda è:
Come posso disabilitare questa tastieraFeature?
o come posso pulire questa tastiera "cache"?
Se utilizzo InputType "NumberDecimale", funziona ma non riesco a utilizzare punti come mille separatori (ma è necessario in Germania), perché saranno interpretati come punto decimale e può esserci solo uno.
Soluzione
Non sono sicuro se riesci a pulire la cache, ma in merito a disabilitare la barra di suggerimento .. Puoi farlo in modo programmatico:
YourEditText.setInputType(YourEditText.getInputType()
| EditorInfo.TYPE_TEXT_FLAG_NO_SUGGESTIONS
| EditorInfo.TYPE_TEXT_VARIATION_FILTER);
.
o è possibile disattivare il tag XML EditText
. Puoi impostare:
<EditText>
android:inputType="textFilter
.... />
.
È possibile utilizzare questo valore, ma sfortunatamente non funziona in tutti i dispositivi specialmente HTC
android:inputType="textNoSuggestions"
.
Modifica
A volte non funziona perché è all'altezza dell'attuazione della tastiera per fare la cosa giusta comprese le bandiere .. Tuttavia, tutto ha una soluzione alternativa puoi provare il seguente codice in XML:
android:inputType="textNoSuggestions|textVisiblePassword"
.
o in java:
yourEditText.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
.
e dammi un feedback se ha funzionato o no ..