Android Spinner Color Style

I am doing a Spinner as shown below. It works fine the way I want. But I want to change the background color to #FFFFFF and textColor to #000000 . But I got a revision of the conclusion ...

enter image description here

java code:

 Spinner staticSpinner = (Spinner)findViewById(R.id.static_spinner); ArrayAdapter<CharSequence> staticAdapter = ArrayAdapter.createFromResource(this,R.array.request_role,android.R.layout.simple_spinner_item); staticAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); // Apply the adapter to the spinner staticSpinner.setAdapter(staticAdapter); 

xml code:

 <Spinner android:id="@+id/static_spinner" android:layout_width="150dp" android:layout_height="45dp" android:layout_marginLeft="30dp" style="@android:style/Widget.Holo.Light.DropDownItem" ></Spinner> 

simple_spinner_dropdown_item.xml

 <CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/text1" style="?android:attr/spinnerDropDownItemStyle" android:singleLine="true" android:layout_width="match_parent" android:layout_height="?android:attr/dropdownListPreferredItemHeight" android:ellipsize="marquee" android:textColor="#000000" /> 

simple_spinner_item.xml

 <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:ellipsize="marquee" android:textColor="#000000" android:textAlignment="inherit"/> 

styles.xml

 <resources xmlns:android="http://schemas.android.com/apk/res/android"> <!-- Base application theme. --> <style name="AppTheme" parent="Theme.AppCompat"> <item name="colorPrimary">#0072BA</item> <item name="colorPrimaryDark">#004F80</item> <item name="colorAccent">#0072BA</item> <item name="android:textColorPrimary">#FFFFFF</item> <item name="colorControlHighlight">#FFFFFF</item> <item name="android:actionBarSize">48dp</item> <item name="actionBarSize">48dp</item> <item name="android:windowActionBar">false</item> </style> </resources> 
+5
source share
5 answers

Using the code below, I can solve my problem.

  <Spinner android:id="@+id/static_spinner2" android:layout_width="fill_parent" android:layout_height="32dp" android:layout_marginLeft="30dp" android:background="@drawable/apptheme_spinner_background_holo_light" android:popupBackground="#ffffff" /> 

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="14sp" android:background="#FFFFFF" android:textColor="#000000" /> 

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:singleLine="true" android:layout_width="match_parent" android:layout_height="?android:attr/listPreferredItemHeight" android:ellipsize="marquee" android:textColor="#000000"/> 

java code:

 Spinner staticSpinner = (Spinner)findViewById(R.id.static_spinner); ArrayAdapter<CharSequence> staticAdapter = ArrayAdapter.createFromResource(this,R.array.request_role,R.layout.spinner_item); staticAdapter.setDropDownViewResource(R.layout.spinner_dropdown_item); // Apply the adapter to the spinner staticSpinner.setAdapter(staticAdapter); 
+1
source

Use this counter in your code.

  <Spinner style="@style/edit_style" android:id="@+id/spr_city" android:background="@drawable/selector_spinner" android:layout_width="0dp" android:textColor="@android:color/white" android:minHeight="@dimen/min_height" android:textCursorDrawable="@null" android:textColorHint="@android:color/white" android:layout_height="fill_parent" android:layout_weight="9" /> 

and create this style in .xml style

  <style name="edit_style" > <item name="android:textSize">14sp</item> <item name="android:textColor">#ffffff</item> </style> 

and use this code in action

  ArrayAdapter<String> adp1=new ArrayAdapter<String> (activity,R.layout.spinner_item_selected,city_list); adp1.setDropDownViewResource(R.layout.spinner_item); s_city.setAdapter(adp1); 

and create xml spinner_item_selected

 <?xml version="1.0" encoding="utf-8"?> <TextView android:id="@+id/textViewSpinnerItem" android:layout_width="fill_parent" android:layout_height="wrap_content" android:padding="@dimen/common_margin" style="@style/edit_style" android:textColor="@android:color/white" xmlns:android="http://schemas.android.com/apk/res/android" /> 

and another xml

 <?xml version="1.0" encoding="utf-8"?> <TextView android:id="@+id/textViewSpinnerItem" android:layout_width="fill_parent" android:layout_height="wrap_content" android:padding="@dimen/common_margin" style="@style/edit_style" android:textColor="@color/spinner_item_selector" xmlns:android="http://schemas.android.com/apk/res/android" /> 
+2
source

You can set the spinner's background color in xml as follows:

 android:background="YOUR_HEX_COLOR_CODE" 

and if you use the drop-down menu with your counter, you can set its background color as follows:

 android:popupBackground="YOUR_HEX_COLOR_CODE" 
+1
source

change android.R to yourprojcet.R

 android.R.layout.simple_spinner_dropdown_item 

to

 letmobility.com.itforte.R.layout.simple_spinner_dropdown_item; 

it takes an android layout instead of your specific application layout.

0
source

Your call should look like this:

 ArrayAdapter<CharSequence> staticAdapter = ArrayAdapter.createFromResource(this,R.array.request_role,android.R.layout.simple_spinner_item); staticAdapter.setDropDownViewResource(R.layout.simple_spinner_dropdown_item); 

instead:

 ArrayAdapter<CharSequence> staticAdapter = ArrayAdapter.createFromResource(this,R.array.request_role,android.R.layout.simple_spinner_item); staticAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
0
source

Source: https://habr.com/ru/post/1239769/


All Articles