We can change the color of spinner text by click the button. Following four steps will explain it clearly.
1. Create a xml named spinnertext.xml in res/layout folder. Here we customize the text of spinner.
spinnertext.xml
2. Create a xml named spinner_selector.xml in res/layout folder. Here we customize the spinner drop down menu.
spinner_selector.xml
3. Now main.xml. Here I get the togglebutton to change the color.
main.xml
4. Now in code we can work with toggle button to change the color.
code for toggle buttton
code for spinner adapter
complete code
SpinnerTextActivity.java
Screen shot 1. (ToggleButton is ON)
Screen shot 2. (ToggleButton is OFF)
1. Create a xml named spinnertext.xml in res/layout folder. Here we customize the text of spinner.
spinnertext.xml
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/spinnerText"
style="?android:attr/spinnerItemStyle"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:paddingBottom="2dp"
android:paddingLeft="6dp"
android:textColor="#662293" />
2. Create a xml named spinner_selector.xml in res/layout folder. Here we customize the spinner drop down menu.
spinner_selector.xml
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
style="?android:attr/spinnerItemStyle"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="10dp"
android:textColor="#000000" />
3. Now main.xml. Here I get the togglebutton to change the color.
main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<ToggleButton
android:id="@+id/toggleButton1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="ToggleButton" />
<Spinner
android:id="@+id/spinner1"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
4. Now in code we can work with toggle button to change the color.
code for toggle buttton
ToggleButton mToggleButton = (ToggleButton) findViewById(R.id.toggleButton1);
mToggleButton.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton arg0, boolean isChecked) {
TextView tv = (TextView) findViewById(R.id.spinnerText);
if (isChecked)
tv.setTextColor(Color.BLUE);
else
tv.setTextColor(Color.RED);
}
});
code for spinner adapter
String array[] = { "one", "two", "three" };
ArrayAdapter sp_adapter = new ArrayAdapter(this, R.layout.spinnertext, array);
sp_adapter.setDropDownViewResource(R.layout.spinner_selector);
Spinner sp = (Spinner) findViewById(R.id.spinner1);
sp.setAdapter(sp_adapter);
complete code
SpinnerTextActivity.java
package com.example.spinnertext;
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.ToggleButton;
public class SpinnerTextActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ToggleButton mToggleButton = (ToggleButton) findViewById(R.id.toggleButton1);
mToggleButton.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton arg0, boolean isChecked) {
TextView tv = (TextView) findViewById(R.id.spinnerText);
if (isChecked)
tv.setTextColor(Color.BLUE);
else
tv.setTextColor(Color.RED);
}
});
String array[] = { "one", "two", "three" };
ArrayAdapter<String> sp_adapter = new ArrayAdapter<String>(this, R.layout.spinnertext, array);
sp_adapter.setDropDownViewResource
(R.layout.spinner_selector);
Spinner sp = (Spinner) findViewById(R.id.spinner1);
sp.setAdapter(sp_adapter);
}
}
Screen shot 1. (ToggleButton is ON)
Screen shot 2. (ToggleButton is OFF)


Thank you for the post.
ReplyDeleteBut if I have two spinner and I want change text color only on the second one?