2015-11-13 23 views
5

So che ci sono molte domande, con risposte, ma nessuna di esse funziona per me.Come modificare il colore del testo a comparsa con completamento automatico appcompat?

miei stili e temi:

<style name="AnnaTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
    <!-- 
    Colors, 
    and stuff 
    --> 
    <item name="android:dropDownItemStyle">@style/DropDownItemStyle</item> 
    <item name="android:spinnerDropDownItemStyle">@style/DropDownItemStyle</item> 
    <item name="spinnerDropDownItemStyle">@style/DropDownItemStyle</item> 
</style> 

<style name="DropDownItemStyle" parent="Widget.AppCompat.Light.DropDownItem.Spinner"> 
    <item name="android:textColor">@android:color/black</item> 
</style> 

ma il risultato è ancora questo:

White dropdown

Il layout è questo:

<android.support.design.widget.TextInputLayout 
    android:id="@+id/til_email" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"> 

     <AutoCompleteTextView 
      android:id="@+id/et_email" 
      android:layout_width="@dimen/join_field_width" 
      android:layout_height="wrap_content" 
      android:hint="@string/email" 
      android:inputType="textEmailAddress"/> 

</android.support.design.widget.TextInputLayout> 

e l'adattatore:

emailView.setAdapter(new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, Utils.getUniqueEmailsFromAccount(this))); 

Potete aiutarmi ragazzi come rendere il testo nero?

+0

Prova 'Android: popupBackground = "# 000000"' sul vostro AutoCompleteTextView –

+0

proposito come hai fatto a dichiarare la vostra AutoCompleteTextView si può mettere il Java? –

+0

Non voglio sfondo nero, ma testo nero. Ho anche aggiunto il codice per l'adattatore. – Pitel

risposta

2

Prova questo consiglio quindi ...

Prima tenta di modificare la Adapter a questo (se non ha funzionato provare con la seconda opzione:

emailView.setAdapter(new ArrayAdapter<>(this, android.R.layout.simple_dropdown_item_1line, Utils.getUniqueEmailsFromAccount(this)));


1 # Creare un style come segue:

<style name="CustomAuto"> 
    <item name="android:paddingTop">3dp</item> 
    <item name="android:paddingRight">5dp</item> 
    <item name="android:paddingBottom">3dp</item> 
    <item name="android:paddingLeft">5dp</item> 
    <item name="android:textColor">#000</item> 
</style> 

2 # Crea una Layout come segue:

<?xml version="1.0" encoding="utf-8"?> 
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:id="@+id/any_id" 
style="@style/CustomAuto" 
android:singleLine="true" /> 

3 # Cambia la tua Adapter a:

emailView.setAdapter(new ArrayAdapter<>(this,R.layout.text_custom_view, Utils.getUniqueEmailsFromAccount(this))); 
+0

Innanzitutto, voglio il colore del testo del popup, non dello sfondo. La modifica di questo valore in getBaseContext() non ha fatto nulla. E cambiando il testoColore mentre suugesti cambia il colore del testo di EditText, non il popup. – Pitel

+0

Prova la mia seconda opzione –

+1

android.R.layout.simple_dropdown_item_1line ha fatto il trucco! Grazie! – Pitel

0

Una semplice soluzione sarebbe la creazione di vostra voce propria lista. Quindi, crea un file XML di layout e scrivi i seguenti codici lì.

<?xml version="1.0" encoding="utf-8"?> 
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:textColor="@android:color/black" 
    android:padding="5dp" 
    android:layout_width="match_parent" 
    android:singleLine="true" 
    android:layout_height="wrap_content"/> 

E passarlo al costruttore dell'adattatore.

emailView.setAdapter(new ArrayAdapter<>(this, R.layout.that_layout, Utils.getUniqueEmailsFromAccount(this))); 
0

Si può anche ignorare l'adattatore:

emailView.setAdapter(new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, Utils.getUniqueEmailsFromAccount(this))){ 
     @Override 
     public View getView(int position, View convertView, ViewGroup parent) { 
      View view = super.getView(position, convertView, parent); 

      TextView text = (TextView)view.findViewById(android.R.id.text1); 

      text.setTextColor(Color.BLACK); 

      return view; 

     }}; 
Problemi correlati