Пользовательский курсор на текст с помощью AutoCompletetExtView

StackOverflow https://stackoverflow.com/questions/4197609

Вопрос

Я создал пользовательское представление, расширив AutoCompletetExtView (со специализированной функцией с именем SetCursorAdapter). Я поставляю простые результаты и добавляю FilterQueryProvider. Я использую это для списка чисел, где мне нужна возможность искать в любом месте в номере для совпадения.

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);
    }

Все работает отлично, пока я не выберу значение из выпадения. Значение, которое я получаю в окне EditText: Android.content.contentResolver $ custorWrapperinner@...

Как мне избежать этого и правильно отобразить свой (числовой) текст.

Спасибо

Это было полезно?

Решение

Решено: SimpleCursorAdapter.convertoString (Cursor) - I переодираю эту функцию, чтобы извлечь значение.

Спасибо

Другие советы

Лучший способ - использовать public void setStringConversionColumn (int stringConversionColumn)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top