AutoCompleteTextview Цвет по умолчанию белый - PullRequest
22 голосов
/ 12 декабря 2011

Я использовал AutoCompleteTextView в моем приложении для Android, и он работает правильно. Единственная проблема, с которой я сталкиваюсь, это то, что цвет предложений по умолчанию белый, то есть я не вижу никаких предложений. Поэтому, когда я начинаю что-то печатать, список расширяется белыми записями (невидимыми), но когда я нажимаю на любой элемент, я обнаруживаю, что он работает так, как и должно быть. Кажется, проблема только в цвете. Я использую следующий код.

<AutoCompleteTextView android:id="@+id/location"  android:textColor="#000000"
            android:layout_width="fill_parent" android:layout_height="wrap_content"></AutoCompleteTextView>

и

 ArrayAdapter<String> autoadapter=new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line,cities);
            city = (AutoCompleteTextView) findViewById(R.id.location);
            city.setAdapter(autoadapter);
            city.setThreshold(1);
            city.setTextColor(Color.BLACK);

Может кто-нибудь сказать, пожалуйста, в чем проблема ??
-Спасибо заранее

Ответы [ 10 ]

15 голосов
/ 12 декабря 2011

Эта зарегистрированная ошибка,

Вы можете найти несколько способов исправить ее по той же ссылке.

Ошибка автозаполнения при просмотре текста

Исправление ошибки

Примечание: Это решение не будет работать с lollipop

Надеюсь, это поможет ...

11 голосов
/ 14 февраля 2015

Я пытался настроить тему до setcontext, пробовал другой параметр ресурсов в arrayAdapter и пробовал другую тему, но ничего не помогло.

Затем я изменил контекст с 'this' на 'getApplicationContext', но проблема былаpersistent.

Наконец я изменил параметр контекста на "getBaseContext ()", и проблема была решена.

7 голосов
/ 20 апреля 2015

Для Lollipop , все обходные решения в сообщенной ошибке не будут работать.

Наконец-то я нашел решение, которое работает с lollipop и предыдущими версиями ОС, используя вместо этого android.R.layout.simple_spinner_dropdown_item с adapter следующим образом:

ArrayAdapter<String> adapter = new ArrayAdapter<>(getContext(), android.R.layout.simple_spinner_dropdown_item, suggestionList);

Это решит проблему с белым текстом без необходимости менять атрибуты темы или что-либо еще.

3 голосов
/ 24 июня 2015

Ну, мы не можем установить цвет "текста предложения", но мы можем изменить его фон!Просто используйте android:popupBackground="YOUR_COLOR_HEX", как в этом примере:

<AutoCompleteTextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/autocompletetextview"
        android:layout_gravity="center_horizontal"
        android:hint=" ... "
        android:popupBackground="#000000"/>

Работает также на Lollipop!;)

3 голосов
/ 22 января 2013

Вы можете использовать simple_list_item_1 в ArrayAdapter,

ArrayAdapter<String> autoadapter=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,cities);
            city = (AutoCompleteTextView) findViewById(R.id.location);

Другое решение - выйти из стиля в AndroidManifest.xml

ПРИМЕЧАНИЕ.не работает с lollipop версиями ОС

1 голос
/ 01 июня 2016

, если у кого-то все еще есть та же проблема

Это сработало для меня

autocompleteF.setBackgroundColor(color.black);
1 голос
/ 23 сентября 2015

Установить цвет фона всплывающего окна как city.setDropDownBackgroundResource(R.color.indicator);

1 голос
/ 12 августа 2013

Вы должны использовать

setTheme(android.R.style.Theme); до setContentView

у меня сработало :) 1009 *

0 голосов
/ 09 февраля 2017

Это сработало для меня. Сначала используйте это до setContentView ()

setTheme(android.R.style.TextAppearance_DeviceDefault_Medium_Inverse);

Вы должны изменить некоторые цвета в colors.xml в папке значений

0 голосов
/ 05 июля 2016

Добавьте это к вашей теме:

<item name="android:autoCompleteTextViewStyle">@style/Widget.AppCompat.AutoCompleteTextView</item>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...