Android: Verhindert, dass Textfelder beim Eingeben von Text in eine SearchView eingeblendet werden

Hallo Android-Entwickler,

Ich habe ein Problem mit dem AndroidSearchView Widget. Ich versuche, meinem ListView einen "Live" -Textfilter hinzuzufügen (bei der Texteingabe werden die Filterergebnisse automatisch aktualisiert). Es funktioniert wirklich gut und es war kein großer Aufwand, es mit den folgenden Zeilen auf meiner ListActivity zum Laufen zu bringen:

<code>private SearchView listFilter;

this.listFilter = (SearchView) findViewById(R.id.listFilter);
this.listFilter.setOnQueryTextListener(this);
this.listFilter.setSubmitButtonEnabled(false);

this.getListView().setOnItemClickListener(this);
this.getListView().setTextFilterEnabled(true);

// from OnQueryTextListener
public boolean onQueryTextChange(String newText) {
    if (newText.isEmpty()) {
        this.getListView().clearTextFilter();
    } else {
        this.getListView().setFilterText(newText);
    }
    return true;
}
</code>

Und hier die XML Widget Deklaration

<code><SearchView
    android:id="@+id/listFilter"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:iconifiedByDefault="false"
    android:queryHint="enter text to filter" />
</code>

Was nun mein Problem ist, ist, dass jedes Mal, wenn ich Text in die SearchView eingebe, ein seltsames Textfeld auftaucht, in dem derselbe Text angezeigt wird, den ich gerade eingegeben habe Anblick auf meine Listeneinträge, das ist nur ärgerlich.

Gibt es eine Möglichkeit zu verhindern, dass dieses Textfeld beim Eingeben in SearchView angezeigt wird? Ich konnte weder in den in XML definierten Widget-Optionen noch in der Java-Klassenreferenz eine Eigenschaft finden.

Ich weiß, dass es eine andere Möglichkeit gibt, die Filterfunktionalität mithilfe von EditText und TextWatcher bereitzustellen, aber dann muss ich die Filterung alleine durchführen und kann nicht von der SearchView-Funktion profitieren, die es für mich übernimmt.

Anregungen sind willkommen. Freundliche Grüße

Felix

Antworten auf die Frage(1)

Ihre Antwort auf die Frage