Dies ist, was passiert: Aktivität A und B haben eine EditText
und beide haben IME_SEARCH
. Die Eingabe erfolgt nur über die Soft-Tastatur eines SAMSUNG-Tablets. Auf Aktivität A kann ich die EditText
ohne Probleme verwenden. Die Sache ist, dass ich auf Aktivität B keinen Text mit der Rücktaste löschen kann, nachdem ich auf "Leerzeichen" geklickt habe oder wenn ich ein Wort aus den Vorschlägen verwende. Es verhält sich so, als wäre dort kein Text mehr. Wenn ich neue Zeichen eintippe, kann ich sie bis zum Leerzeichen löschen.Android: weiche Tastatur Rücktaste auf EditText funktioniert nicht
wichtige Punkte:
- Die Hierarchieansicht, die enthält das
EditTexts
identisch sind - Der Code, der die
IME_SEARCH
Verarbeitung (viasetOnEditorActionListener
) konfiguriert ist identisch - Die
TextWatcher
beider auch identisch sind - Im Manifest sind beide Aktivitäten mit
konfiguriert
eingestellt I einen Haltepunkt für das Verfahren beforeTextChanged
sowohl TextWatcher
. Ich habe ein "Leerzeichen" eingefügt und die Rücktaste gedrückt. Auf der Edittext
der Aktivität A wird die Methode ausgelöst, aber auf Aktivität B ist es nicht ausgelöst. Ich kann den Grund dafür nicht sehen, da die Eigenschaften von beiden Edittext
identisch konfiguriert sind. Ich versuchte auch, die IME
Option zu entfernen, aber das Verhalten behielt das gleiche bei.
Weiß jemand, was passieren könnte?
EDIT 1:
searchTxt.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
if (s.length() == 0) {
btnClear.setVisibility(View.GONE);
} else{
btnClear.setVisibility(View.VISIBLE);
}
}
});
searchTxt.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_SEARCH) {
buildGrid();
return true;
}
return false;
}
});
EDIT 2: Die Hierarchie-Layout ist wie folgend.
<LinearLayout
... >
<include layout="@layout/title_bar" />
<RelativeLayout
...>
<EditText
...>
Können Sie den Textwatcher teilen? – toshkinl
@toshkinl Sicher, ich habe es gerade hinzugefügt – luizfzs
Scheint gut. "Wort von den Vorschlägen" fügt am Ende Platz hinzu, deshalb kann man nicht löschen, nicht weil es aus den Vorschlägen stammt. Sind Sie sicher, dass zwischen den 2 Layouts und Activities bezüglich EditText keine Unterschiede bestehen? – toshkinl