web-dev-qa-db-fra.com

comment définir la couleur du texte en rotation?

Je n'ai pas pu définir la couleur du widget Spinner. Comment est-ce stylé?

SpinnerText

19
skinnybrit51

Essayez d’utiliser cet adaptateur pour votre disque:

ArrayAdapter<String> adapter = 
    new ArrayAdapter<String>(Home.Home_Group, R.layout.my_spinner_style, yourstringarray)
{

    public View getView(int position, View convertView, ViewGroup parent) {
        View v = super.getView(position, convertView, parent);

        ((TextView) v).setTextSize(16);
        ((TextView) v).setTextColor(
            getResources().getColorStateList(R.color.white)
        );

        return v;
    }

    public View getDropDownView(int position, View convertView, ViewGroup parent) {
        View v = super.getDropDownView(position, convertView, parent);
        v.setBackgroundResource(R.drawable.spinner_bg);

        ((TextView) v).setTextColor(
            getResources().getColorStateList(R.color.spinner_text)
        );

        ((TextView) v).setTypeface(fontStyle);
        ((TextView) v).setGravity(Gravity.CENTER);

        return v;
    }
};

Ajouter ce xml à votre mise en page,

my_spinner_style.xml

<?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:textColor="#ffffff"
        Android:layout_width="fill_parent"
        Android:layout_height="wrap_content"
        Android:ellipsize="Marquee" />

Et enfin 

spinner.setAdapter(adapter);
30
Andro Selva

Simple et croustillant ....

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

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


    }

    public void onNothingSelected(AdapterView<?> parent) {

    }
};
16
Ashraf

La forme la plus simple est:

m_spnDia = (Spinner)findViewById(R.id.spiDia);
TextView oTextView = (TextView)m_spnDia.getChildAt(0);
oTextView.setTextColor(Color.RED);
4
Pelli

Une alternative plus courte à Andro'd answer consiste à laisser la ArrayAdapter créer pour vous les vues d'élément à partir d'une ressource de présentation:

final List<String> values = [SPINNER VALUES];
final ArrayAdapter<String> adapter = new ArrayAdapter<>(
    activity, R.layout.my_spinner_item, values);
adapter.setDropDownViewResource(R.layout.my_spinner_dropdown_item);
spinner.setAdapter(adapter);

Puis, adaptez votre texte à my_spinner_item.xml en fonction de vos besoins:

<?xml version="1.0" encoding="utf-8"?>
<TextView
    xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:id="@Android:id/text1"
    style="@style/my_spinner_item_style"
/>

Remarque: my_spinner_dropdown_item est utilisé lorsque la liste de choix apparaît

Pour plus d'informations, consultez la documentation Spinners .

3
Ferran Maylinch

Si vous souhaitez modifier la couleur du texte: Spinner Widgets Text Color

Comme le dit JoxTraex, faire votre propre mise en page est la meilleure solution.

3
ChapMic

Essayez de comprendre que vous utilisez la liste déroulante fournie par les valeurs par défaut disponibles dans le SDK.

SIMPLEMENT créez votre propre mise en page avec un adaptateur personnalisé.

0
JoxTraex