Come modificare la dimensione del testo del filatore e il colore del testo?


432

Nella mia applicazione Android, sto usando spinner e ho caricato i dati dal database SQLite nello spinner e funziona correttamente. Ecco il codice per quello.

Spinner spinner = (Spinner) this.findViewById(R.id.spinner1);
List<String> list = new ArrayList<String>();
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>  (this,android.R.layout.simple_spinner_item, list);
cursor.moveToFirst();

list.add("All Lists");

if (cursor.getCount() > 0) {
    for (int i = 0; i < cursor.getCount(); i++) {
        keyList[i] = cursor.getString(cursor.getColumnIndex(AndroidOpenDbHelper.KEYWORD));
        list.add(keyList[i]);
        cursor.moveToNext();
    }
}
Database.close();
cursor.close();
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(dataAdapter);

Ora voglio cambiare il colore del testo e la dimensione del testo dei dati del filatore. Ho usato le seguenti linee XML per il mio tag spinner sul mio file XML, ma non funziona.

android:textColor="@android:color/white"
android:textSize="11dp"

Come posso cambiare il colore e la dimensione del testo del mio spinner?


controlla i seguenti siti [StackoverFlow] [1] [stackoverflow] [2] [stackoverflow] [3] Penso che questa sia una domanda duplicata [1]: stackoverflow.com/questions/4880413/… [2]: stackoverflow.com/questions / 4989817 / ... [3]: stackoverflow.com/questions/5836254/...
user1203673


1
Per textSize è corretto usare SP ... android: textSize = "11sp"
Diego Venâncio

Risposte:


780

Crea un file XML personalizzato per il tuo oggetto spinner.

spinner_item.xml:

Dai il tuo colore personalizzato e le dimensioni al testo in questo file.

<?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:textSize="20sp"
    android:gravity="left"  
    android:textColor="#FF0000"         
    android:padding="5dip"
    />

Ora usa questo file per mostrare i tuoi oggetti spinner come:

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.spinner_item,list);

Non è necessario impostare la risorsa a discesa. Ci vorrà spinner_item.xmlsolo per mostrare i tuoi oggetti in spinner.


2
Il testo @Hiral sarà bianco solo per l'elemento attualmente selezionato.
tesla,

8
@SANTHOSH bene devi aggiungere l'id a TextView, basta aggiungerlo lì android:id="@+id/customSpinnerItemTextView". Se avessi eseguito il debug di questo, lo sapresti.
vilpe89,

3
@Vilpe89 potresti modificare il codice sopra per mostrare cosa intendi con questo? dove va questo android: id? certamente non nel tag spinner, perché ha il suo id. ma non ha senso aggiungerlo nel tag textview che hai creato sopra. come faccio a sapere che voglio usare questo tag direttamente dall'XML? inoltre, quando creo l'XML da Eclipse, non vedo alcuna opzione per creare un file XML contenente solo un TextView, come funziona ???
Michael,

29
Solo una piccola nota. Textsize dovrebbe usare sp invece di dp / dip
ymerdrengene

18
non è possibile farlo usando solo lo stile? Sono sorpreso dal fatto che piccole cose siano così difficili da modellare in Android .. questo è frustrante .. Avrei voluto che avessero un sistema di styling come css
yeahman

183

Semplice e nitido ...:

private OnItemSelectedListener OnCatSpinnerCL = new AdapterView.OnItemSelectedListener() {
    public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {

       ((TextView) parent.getChildAt(0)).setTextColor(Color.BLUE);
       ((TextView) parent.getChildAt(0)).setTextSize(5);

    }

    public void onNothingSelected(AdapterView<?> parent) {

    }
};

19
Questa è la soluzione migliore per me, perché avevo bisogno di cambiare il colore del testo nella casella di selezione, ma non nell'elenco visualizzato. Grazie.
peter.bartos,

7
Per me, il colore dell'articolo lampeggia, passando dal colore originale al colore che ho scelto
Felipe Conde,

@FelipeConde Hai mai trovato una risposta? Ho la stessa domanda La mia domanda è qui: stackoverflow.com/questions/33908564/…
Rock Lee,

@FelipieConde Per te, inizialmente prende il colore della risalita, quindi si passa manualmente a un altro colore, quindi sembra così stanco. All'inizio ci vuole <item name = "colorAccent"> @ color / color_primary </item> Poi sei stato modificato manualmente da programmatic, quindi senti il ​​battito di ciglia
Ashraf,

2
questo ha funzionato per me, ma il mio problema è quando ritorno da un'app frammentata si arresta in modo da ottenere un puntatore nullo sul codice sopra
Akshay Shah

145

Se tutti i filatori possono avere lo stesso colore di testo per i loro elementi TextView, un altro approccio consiste nell'utilizzare uno stile personalizzato per gli elementi a discesa dei filatori:

In res/values/styles.xml:

<resources>
    <style name="AppBaseTheme" parent="android:Theme.Light">
    </style>

    <style name="AppTheme" parent="AppBaseTheme">
        <item name="android:spinnerDropDownItemStyle">@style/mySpinnerItemStyle</item>
    </style>

    <style name="mySpinnerItemStyle" parent="@android:style/Widget.Holo.DropDownItem.Spinner">
        <item name="android:textColor">@color/my_spinner_text_color</item>
    </style>
</resources>

E definisci il tuo colore personalizzato in res / valori / colors.xml:

<color name="my_spinner_text_color">#808080</color>

2
E come applicare questa soluzione al tema Appcompt? L'ho provato sostituendo il tema principale "@ style / Widget.AppCompat.DropDownItem.Spinner" e non ha funzionato
GyRo,

11
Vorrei anche aggiungere: <item name = "android: spinnerItemStyle"> @ style / mySpinnerItemStyle </item> Questo assicura che il testo compresso abbia lo stesso colore - nel caso in cui si tratti del comportamento desiderato.
loop infinito

4
non funziona neanche per me, lo stile è completamente ignorato
diogo.abdalla

1
@Whypee, modifica la tua risposta in base ai suggerimenti di infinite-loop ha funzionato perfettamente per me
Chintan Desai,

4
Per il tema AppCompat basta rimuovere in android:questo modo<item name="spinnerDropDownItemStyle">@style/mySpinnerItemStyle</item>
Roman_D

73

Ecco un link che può aiutarti a cambiare il colore dello Spinner :

Clicca qui

<Spinner
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:id="@+id/spinner"
    android:textSize="20sp"
    android:entries="@array/planets"/>

Devi creare il tuo file di layout con una definizione personalizzata per l'elemento spinner spinner_item.xml :

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/text1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:textSize="20sp"
    android:textColor="#ff0000" />

Se si desidera personalizzare gli elementi dell'elenco a discesa, è necessario creare un nuovo file di layout. spinner_dropdown_item.xml :

<?xml version="1.0" encoding="utf-8"?>
<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/text1"
    style="?android:attr/spinnerDropDownItemStyle"
    android:maxLines="1"
    android:layout_width="match_parent"
    android:layout_height="?android:attr/listPreferredItemHeight"
    android:ellipsize="marquee"
    android:textColor="#aa66cc"/>

E infine un altro cambiamento nella dichiarazione del filatore:

ArrayAdapter adapter = ArrayAdapter.createFromResource(this,
R.array.planets_array, R.layout.spinner_item);

adapter.setDropDownViewResource(R.layout.spinner_dropdown_item);
spinner.setAdapter(adapter);

Questo è tutto.


2
Questa è stata una risposta automatizzata derivata dalla revisione dei post di nuovi utenti. Sono contento di vedere che hai modificato la risposta! :)
Marko,

1
Sembra che android:textSize="20sp"nel primo frammento di codice sia inutile: la dimensione del testo del controllo è definita nelspinner_item.xml
DenisGL

23

Se lavori con android.support.v7.widget.AppCompatSpinner ecco la soluzione testata più semplice che usa gli stili:

 <android.support.v7.widget.AppCompatSpinner
                    android:id="@+id/spefcialFx"
                    style="@style/Widget.AppCompat.Spinner.Underlined"
                    android:layout_width="200dp"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="4dp"
                    android:theme="@style/Spinner"
                    android:entries="@array/special_fx_arrays"
                    android:textSize="@dimen/text_size_normal"></android.support.v7.widget.AppCompatSpinner>

E lo stile:

<style name="Spinner" parent="Widget.AppCompat.Light.DropDownItem.Spinner">
        <item name="android:paddingStart">0dp</item>
        <item name="android:paddingEnd">0dp</item>
        <item name="android:textColor">@color/white</item>
        <item name="android:backgroundTint">@color/red</item>
        <item name="android:textSize">14sp</item>
    </style>

L'unico aspetto negativo è Android: backgroundTint imposta il colore sia per la freccia a discesa che per lo sfondo a discesa.


3
tu usi style="@style/Widget.AppCompat.Spinner.Underlined"ma hai solo style name="Spinner"...
user25

1
paddingStartrichiede API 17, backgroundTintrichiede API 21.
CoolMind

18

Per evitare ritardi, è necessario non solo impostare le proprietà del testo nel onItemSelectedlistener, ma anche in AttivitàonCreate metodo dell'Attività (ma è un po 'complicato).

In particolare, è necessario inserirlo onCreatedopo aver impostato l'adattatore:

spinner.setSelection(0, true);
View v = spinner.getSelectedView();
((TextView)v).setTextColor(backgroundColor);

E poi inseriscilo in onItemSelected:

((TextView) view).setTextColor(backgroundColor);

Ecco un esempio completo:

@Override  
protected void onCreate(Bundle savedInstanceState)
{  
    Spinner spinner = (Spinner) findViewById(R.id.spinner); 

    //Set the choices on the spinner by setting the adapter.  
    spinner.setAdapter(new SpinnerAdapter(toolbar.getContext(), new String[]{"Overview", "Story", "Specifications", "Poll", "Video"}, accentColor, backgroundColor));

    //Set the text color of the Spinner's selected view (not a drop down list view) 
    spinner.setSelection(0, true);
    View v = spinner.getSelectedView();
    ((TextView)v).setTextColor(backgroundColor);

    //Set the listener for when each option is clicked.  
    spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener()
    {  

        @Override  
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id)
        {  
           //Change the selected item's text color  
           ((TextView) view).setTextColor(backgroundColor);
        }  

        @Override  
        public void onNothingSelected(AdapterView<?> parent)
        {  
        }  
    });  

}  

Per maggiori dettagli, vedi la mia domanda .


15

Se si desidera che il colore del testo cambi solo nell'elemento selezionato, questa può essere una possibile soluzione alternativa. Ha funzionato per me e dovrebbe funzionare anche per te.

spinner.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
            @Override
            public void onGlobalLayout() {
                ((TextView) spinner.getSelectedView()).setTextColor(Color.WHITE);
            }
        });

6

Per qualcuno che ha solo bisogno Styledi AppCompat.

Risultato
inserisci qui la descrizione dell'immagine inserisci qui la descrizione dell'immagine

styles.xml

<resources>
    ... 
    <style name="Spinner" parent="Widget.AppCompat.Light.DropDownItem.Spinner">
        <item name="android:paddingStart">0dp</item>
        <item name="android:paddingEnd">0dp</item>
        <item name="android:textColor">@color/material_grey_700</item>
        <item name="android:textSize">12sp</item>
    </style>
</resources>

your_spinner_layout.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />
    ...

    <android.support.v7.widget.AppCompatSpinner
        android:id="@+id/content_spinner"
        style="@style/Widget.AppCompat.Spinner.Underlined"
        android:layout_width="140dp"
        android:layout_height="wrap_content"
        android:entries="@array/shipping_tracking_carrier_names"
        android:spinnerMode="dropdown"
        android:theme="@style/Spinner" />

    <EditText
        android:id="@+id/content_input"
        android:layout_width="140dp"
        android:layout_height="wrap_content"
        android:inputType="text"
        android:maxLines="1"
        android:paddingEnd="8dp"
        android:paddingStart="8dp"
        android:textColor="@color/material_grey_700"
        android:textSize="12sp" />

    ...
</LinearLayout>    

Plus
E se si desidera impostare a livello di android:entriescodice con uno stile definito.
Prova questo.

AppCompatSpinner spinner = findViewById(R.id.content_spinner);
CharSequence[] entries = getResources().getTextArray(R.array.shipping_tracking_carrier_names);
ArrayAdapter<CharSequence> adapter = new ArrayAdapter<>(spinner.getContext(), android.R.layout.simple_spinner_item, entries);
adapter.setDropDownViewResource(android.support.v7.appcompat.R.layout.support_simple_spinner_dropdown_item);
spinner.setAdapter(adapter);

Come nel codice, usare lo stesso Contextcon la Spinnercosa più importante.

spinner.getContext()

5

Per cambiare il colore del testo del filatore:

 public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
            ((TextView) parent.getChildAt(0)).setTextColor(Color.WHITE);}

Questo è il più semplice e ha funzionato per me, grazie!
Mousa Alfhaily,

mi piace anche questa soluzione. è semplice e funziona bene.
Korchix

4

Invece di creare un layout personalizzato per ottenere una dimensione ridotta e se si desidera utilizzare LAYOUT interno di piccole dimensioni Android per lo spinner, è necessario utilizzare:

"android.R.layout.simple_gallery_item" invece di "android.R.layout.simple_spinner_item".

ArrayAdapter<CharSequence> madaptor = ArrayAdapter
            .createFromResource(rootView.getContext(),
                                R.array.String_visitor,
                                android.R.layout.simple_gallery_item);

Può ridurre le dimensioni del layout del filatore. È solo un semplice trucco.

Se si desidera ridurre le dimensioni di un elenco a discesa, utilizzare questo:

madaptor.setDropDownViewResource(android.R.layout.simple_gallery_item);

4

Il modo più semplice per riutilizzare / modificare le risorse android.R.layout è semplicemente andare alla definizione. In Android Studio, fai Ctrl+ Bsu android.R.layout.simple_spinner_item.xml.

Ti porterà al file di risorse. Basta copiare il file di risorse e aggiungere un nuovo layout nella cartella Package.R.layout e modificare textColor di textview come preferisci, quindi chiamarlo in un adattatore come questo:

ArrayAdapter<String> adapter = new ArrayAdapter<String(Context,R.layout.spinner_item, spinnerlist);

4

Per coloro che vogliono cambiare DrowDownIconcolore puoi usare così

spinner.getBackground().setColorFilter(Color.parseColor("#ffffff"), PorterDuff.Mode.SRC_ATOP);

puoi provare<item name="android:colorControlNormal" tools:targetApi="lollipop">@color/light_gray</item>
AMAN SINGH

metti questa linea nel tuo stileAppTheme
AMAN SINGH

Questo è il codice che ha funzionatoDrawable spinnerDrawable = spinner.getBackground().getConstantState().newDrawable(); spinnerDrawable.setColorFilter(getResources().getColor(R.color.md_white_1000), PorterDuff.Mode.SRC_ATOP); if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { spinner.setBackground(spinnerDrawable); }else{ spinner.setBackgroundDrawable(spinnerDrawable); }
Edijae Crusar,

4

È possibile modificare il colore del testo sovrascrivendo il metodo getView come segue:

 new ArrayAdapter<String>(getContext(), android.R.layout.simple_spinner_dropdown_item, list()){
                @Override
                public View getView(int position, View convertView, @NonNull ViewGroup parent) {
                    View view = super.getView(position, convertView, parent);
                    //change the color to which ever you want                    
                    ((CheckedTextView) view).setTextColor(Color.RED);
                    //change the size to which ever you want                    
                    ((CheckedTextView) view).setTextSize(5);
                    //for using sp values use setTextSize(TypedValue.COMPLEX_UNIT_SP, 16);
                    return view;
                }
    }


2
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@android:id/text1"
    style="?android:attr/spinnerItemStyle"
    android:singleLine="true"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:textColor="#fff"
    android:ellipsize="marquee"
    android:textAlignment="inherit"/>

basta usare questo:

ArrayAdapter<String> adapter_category = new ArrayAdapter<String>(this,
    R.layout.spinner_list_item, categories);
adapter_category
    .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

1

Un'altra variante della soluzione di Ashraf sarebbe quella di assicurarsi di prendere in considerazione le dimensioni dello schermo. Dovrai inserire lo spinner in onCreate e impostare il listener dopo aver impostato l'adattatore:

//set your adapter with default or custom spinner cell, then://
serverSpinner.setOnItemSelectedListener(spinnerSelector);
serverSpinner.setSelection(defaultServer);

Quindi puoi iniziare a modificare la dimensione del testo della vista visualizzata prima che venga fatto clic sul filatore:

private AdapterView.OnItemSelectedListener spinnerSelector = new AdapterView.OnItemSelectedListener() {
    public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
        boolean tabletSize = getResources().getBoolean(R.bool.isTablet);
        boolean largeTablet = getResources().getBoolean(R.bool.isLargeTablet);
        if (tabletSize) { ((TextView)parent.getChildAt(0)).setTextSize(16); }
        else if (largeTablet) { ((TextView)parent.getChildAt(0)).setTextSize(18); }
        else { ((TextView)parent.getChildAt(0)).setTextSize(12); }
    }
    public void onNothingSelected(AdapterView<?> parent) {

    }
};

Tutto quello che devi fare è creare cartelle specifiche per il layout come questa:

Valori-sw360dp

Valori-sw600dp

Valori-sw800dp

quindi aggiungere un file xml denominato "bool.xml" in ciascuna di queste cartelle:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <bool name="isTablet">false</bool>
    <bool name="isLargeTablet">false</bool>
</resources>

1

Per prima cosa dobbiamo creare il semplice xmlfile di risorse per textviewsimili come di seguito:

<?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:textSize="20sp"
    android:gravity="left"  
    android:textColor="#FF0000"         
    android:padding="5dip"
    />   

e salvalo. dopo aver impostato il tuo elenco di adattatori.


1

puoi avere questo tipo di adattatore per spinner, totalmente personalizzato:

 ArrayAdapter<String> genderAdapter = new ArrayAdapter<String>(getActivity(), R.layout.spinner_text, genderList) {

        public View getView(int position, View convertView, ViewGroup parent) {
            View v = super.getView(position, convertView, parent);
            ((TextView) v).setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16);
            ((TextView) v).setTextColor(Color.parseColor("#676767"));
            ((TextView) v).setTypeface(vrFont);
            return v;
        }

        public View getDropDownView(int position, View convertView, ViewGroup parent) {
            View v = super.getDropDownView(position, convertView, parent);
            ((TextView) v).setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16);
            ((TextView) v).setTypeface(vrFont);
            ((TextView) v).setTextColor(Color.parseColor("#676767"));

            if (position == 0) {
                ((TextView) v).setTextColor(Color.parseColor("#979797"));
            }

            return v;
        }

mentre R.layout.spinner_text è:

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/text1"
style="?android:attr/spinnerItemStyle"
android:layout_width="fill_parent"
android:layout_height="40dp"
android:gravity="center_vertical|left"
android:ellipsize="marquee"
android:maxLines="1"
android:textColor="@color/whiteThree" />

1

Se desideri un metodo semplice, per aggiungere elementi a un menu a discesa, di solito li aggiungi a strings.xml. Ecco un esempio su come aggiungere colore usando il file strings.xml:

SELEZIONA GAMMA DI ETÀ

<string-array name="age_array">

   <item> 0-6 </item>                               //No custom colour

  <item><font fgcolor='#FF4CD964'> 12+ </font></item> //With custom colour

</string-array>

trucco carino ... utile e veloce per uno spinner unico, il colore deve essere una stringa di valore di colore grezzo non da xml
me_

0

L'ho fatto come segue. Ho usato i metodi getDropDownView () e getView ().

Utilizzare getDropDownView()per Spinner aperto.

@Override
public View getDropDownView(int position, View convertView, ViewGroup parent) {
  View view = convertView;
  if (view == null) {
    LayoutInflater vi = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    view = vi.inflate(R.layout.context_row_icon, null);
  }
  TextView mTitle = (TextView) view.findViewById(R.id.context_label);
  ImageView flag = (ImageView) view.findViewById(R.id.context_icon);                

  mTitle.setText(values[position].getLabel(activity));

  if (!((LabelItem) getItem(position)).isEnabled()) {
    mTitle.setTextColor(activity.getResources().getColor(R.color.context_item_disabled));
  } else {
    mTitle.setTextColor(activity.getResources().getColor(R.color.context_item));
  }
  return view;
}

E utilizzare getView()per Spinner chiuso.

@Override
public View getView(int position, View convertView, ViewGroup parent) {
  View view = convertView;
  if (view == null) {
    LayoutInflater vi = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    view = vi.inflate(R.layout.context_row_icon, null);
  }
  TextView mTitle = (TextView) view.findViewById(R.id.context_label);
  ImageView flag = (ImageView) view.findViewById(R.id.context_icon);

  mTitle.setText(values[position].getLabel(activity));
  mTitle.setTextColor(activity.getResources().getColor(R.color.context_item_disabled));

  return view;
}

È un codice correttamente testato e ha funzionato nell'applicazione in appstore
Bhavinkumar Patel il

0

Prova questo metodo. Funziona per me.

@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
    TextView textView = (TextView) view;
    ((TextView) adapterView.getChildAt(0)).setTextColor(Color.RED);
    ((TextView) adapterView.getChildAt(0)).setTextSize(20);
    Toast.makeText(this, textView.getText()+" Selected", Toast.LENGTH_SHORT).show();
}

0

aggiungi un nuovo stile come questo:

<style name="mySpinnerItemStyle" parent="ThemeOverlay.AppCompat.Dark">
    <item name="android:textColor">#000</item>
    <item name="android:color">#000</item>
</style>

e usalo:

<Spinner
      android:id="@+id/spinnerCategories"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      style="@style/mySpinnerItemStyle"
      android:layout_margin="5dp" />

0
    String typeroutes[] = {"Select","Direct","Non Stop"};
    Spinner typeroute;

    typeroute = view.findViewById(R.id.typeroute);

    final ArrayAdapter<String> arrayAdapter5 = new ArrayAdapter<String>(
                getActivity(), android.R.layout.simple_spinner_item, typeroutes) {
            @Override
            public boolean isEnabled(int position) {
                if (position == 0) {
                    // Disable the first item from Spinner
                    // First item will be use for hint
                    return false;
                } else {
                    return true;
                }
            }

            public View getView(int position, View convertView, ViewGroup parent) {
                View v = super.getView(position, convertView, parent);
                ((TextView) v).setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16);
                ((TextView) v).setTextColor(Color.parseColor("#ffffff"));
                return v;
            }         ---->in this line very important so add this

            @Override
            public View getDropDownView(int position, View convertView,
                                        ViewGroup parent) {
                View view = super.getDropDownView(position, convertView, parent);
                TextView tv = (TextView) view;
                if (position == 0) {
                    // Set the hint text color gray
                    tv.setTextColor(Color.GRAY);
                } else {
                    tv.setTextColor(Color.BLACK);
                }
                return view;
            }
        };

        arrayAdapter5.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

        typeroute.setAdapter(arrayAdapter5);

è tutto divertente per la tua codifica ...

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.