Подтвердить что ты не робот

AutoCompleteTextView цвет фона/переднего плана

Я работаю над AutoCompleteTextView.Its работает нормально, но выпадающий текст всегда белый текст на белом фоне. эта картина объясняет мою проблему

картина объясняет мою проблему

enter image description here

XML:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#000"
    >
    <!-- <AutoCompleteTextView  -->
    <AutoCompleteTextView
        android:id="@+id/text"
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content"
        android:hint="Tapez votre 1texte"
        android:textColor="#000"        
        />
</LinearLayout>

Java:

view = (AutoCompleteTextView)findViewById(R.id.text);        
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line,data);
adapter.setDropDownViewResource(R.drawable.ic_action_search);//dd
view.setAdapter(adapter);
4b9b3361

Ответ 1

Если вы хотите изменить внешний вид выпадающих элементов, измените формат XML, который вы передаете в ArrayAdapter (в вашем случае это android.R.layout.simple_dropdown_item_1line).

Давайте сделаем новый макет с именем my_list_item.xml в res/layout:

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/text1"
    style="?android:attr/dropDownItemStyle"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:padding="5dp"
    android:textAppearance="?android:attr/textAppearanceMediumInverse"
    android:textColor="#00f" />

Этот текст меньше, синий и по центру. Я не рекомендую использовать этот макет, это больше, чтобы продемонстрировать, что вы можете его настроить.

Теперь используйте это вместо:

view = (AutoCompleteTextView)findViewById(R.id.text);        
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.my_list_item, data);
view.setAdapter(adapter);

Когда вы устанавливаете здесь атрибуты (например, цвет текста):

<AutoCompleteTextView
    android:id="@+id/text"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"
    android:hint="Tapez votre 1texte"
    android:textColor="#000"        
    />

Вы только меняете поле над выпадающим списком (поле, которое вы видите перед тем, как вы взаимодействуете с AutoCompleteTextView). Надеюсь, что это поможет!

Ответ 2

Этот вопрос может быть старым, но я считаю, что это очень важно для меня. Я столкнулся с той же проблемой, что и OP, но это связано с тем, что вместо 'this'

я использовал 'getApplicationContext()


Wrong

ArrayAdapter<String> adapter = new ArrayAdapter<String>
                (getApplicationContext(), android.R.layout.simple_list_item_1, PLACES);


Правильно

ArrayAdapter<String> adapter = new ArrayAdapter<String>
                (this, android.R.layout.simple_list_item_1, PLACES);

Ответ 3

Сложное решение для этого:  Добавьте эту строку setTheme (android.R.style.Theme); до setContentView() в вашем файле активности, в котором присутствует ваше autocompletetextview. Дайте мне знать, если это сработает.

Ответ 4

Ответа на этот вопрос didldum https://code.google.com/p/android/issues/detail?id=5237

расширяя тему и переопределяя 2 стиля для введенного текста и текста предложения:

  • используйте расширенную тему в своем манифесте: ... ...

  • создайте новую тему (res/values ​​/themes.xml), которая использует фиксированные стили: ...   @Стиль/AutoCompleteTextViewLight   @Стиль/Widget.DropDownItemLight ...

  • создайте стили (res/values ​​/styles.xml), которые фиксируют цвет: ...   @android: цвет /primary _text_light   @android: цвет /primary _text_light

Ответ 5

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

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

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

Ответ 6

Я получил свое решение в выборе макета "select_dialog_singlechoice ArrayAdapter<String > s1= new ArrayAdapter<String> (this,android.R.layout.select_dialog_singlechoice,state); введите здесь описание изображения

вместо получения контекста приложения write "this" в ArrayAdapter < > ;

попробуйте использовать разные макеты, u определит ваши запросы

Ответ 7

Я решил эту проблему, сделав простой хитрый путь,

Просто измените тему вашей деятельности, объявленной в вашем AndroidManifest.xml, как,

 <activity
   android:name=".YourActivity"
            android:configChanges="keyboardHidden|orientation|screenSize"
            android:theme="@style/Theme.AppCompat.Light.NoActionBar"
            android:windowSoftInputMode="stateHidden"></activity>

и в Деятельности следующим образом,

ArrayAdapter<String> adapter = new ArrayAdapter<String>
                (getActivity(), android.R.layout.select_dialog_item, arraylist);