Je n'ai pas pu définir la couleur du widget Spinner. Comment est-ce stylé?
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);
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) {
}
};
La forme la plus simple est:
m_spnDia = (Spinner)findViewById(R.id.spiDia);
TextView oTextView = (TextView)m_spnDia.getChildAt(0);
oTextView.setTextColor(Color.RED);
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 .
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.
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é.