Frage

Ich habe eine benutzerdefinierte Ansicht durch die Erweiterung AutoCompleteTextView erstellt (mit einem spezialisierten Funktion namens setCursorAdapter). Ich bin ein SimpleCursorAdapter Versorgung und das Hinzufügen eines FilterQueryProvider. Ich benutze dies für eine Liste von Zahlen, wo ich die Fähigkeit benötigen überall innerhalb der Anzahl nach einer Übereinstimmung zu suchen.

public void setCursorAdapter(final Uri uri, final String key) {

        Cursor c = getContext().getContentResolver().query(uri,
                new String[] { "_id", key }, null, null, key);
        SimpleCursorAdapter adapter = new SimpleCursorAdapter(getContext(),
                android.R.layout.simple_dropdown_item_1line, c,
                new String[] { key }, new int[] { android.R.id.text1 });

        this.addTextChangedListener(new TextWatcher() {

            @Override
            public void onTextChanged(CharSequence s, int start, int before,
                    int count) {
                ((SimpleCursorAdapter) getAdapter()).getFilterQueryProvider()
                        .runQuery(s);

            }

            @Override
            public void beforeTextChanged(CharSequence s, int start, int count,
                    int after) {
                // TODO Auto-generated method stub

            }

            @Override
            public void afterTextChanged(Editable s) {
                // TODO Auto-generated method stub

            }
        });

        adapter.setFilterQueryProvider(new FilterQueryProvider() {

            @Override
            public Cursor runQuery(CharSequence constraint) {
                Cursor c = getContext().getContentResolver().query(uri,
                        new String[] { "_id", key },
                        key + " LIKE '%" + constraint + "%'", null, key);
                return c;
            }
        });
        setAdapter(adapter);
    }

Alles funktioniert einwandfrei, bis ich den Wert aus dem Dropdown auswählen. Der Wert, den ich im EditText Fenster angezeigt: android.content.ContentResolver $ CursorWrapperInner @ ...

Wie vermeide ich diese und meinen (numerisch) Text korrekt angezeigt.

Danke

War es hilfreich?

Lösung

Gelöst: SimpleCursorAdapter.converToString (Cursor) - I overrode diese Funktion den Wert zu extrahieren

.

Danke

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top