由于某种原因,我的微调器中所选项目的文本颜色为白色。这是活动的代码:
spinner = (Spinner) findViewById(R.id.spinner_categories);
arr_list_categories = manager.get_all_categories();
arr_list_categories_names = new ArrayList<String>();
// Loop through the Categories array
for (int i = 0; i < arr_list_categories.size(); i++)
{
Category curr_category = arr_list_categories.get(i); // Get the Category object at current position
arr_list_categories_names.add(curr_category.getCategory_name()
.toString()); // Add the name of the Category to the Names Array
}
// Setting the Adapter, to display retrieved data in the Spinner
adapter=new ArrayAdapter<String> (this, R.layout.simple_spinner_item, arr_list_categories_names);
// Setting the display source for the Spinner View
adapter.setDropDownViewResource(R.layout.simple_spinner_item);
// Populating the Spinner
spinner.setAdapter(adapter);
// Registering for On Item Selected listener
spinner.setOnItemSelectedListener(spinnerListener);
这是simple_spinner_item的XML:
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="left"
android:padding="5dip"
android:textColor="#FF0000"
android:textSize="20sp" />
下拉项目显示为红色,但不显示所选项目。我尝试将XML中的textColor更改为选择器:android:textColor="@drawable/spinner_text_color_selector"
并创建了这个选择器:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:color="#FF0000"/><!-- pressed -->
<item android:state_focused="true" android:color="#FF0000"/><!-- focused -->
<item android:state_selected="true" android:color="#FF0000"/>
<item android:state_activated="true" android:color="#FF0000"/>
<item android:color="#FF0000"/><!-- default -->
</selector>
但所选项目的文字颜色仍为白色。所以我尝试在OnItemSelectedListener中执行此操作:
TextView selected_tv = (TextView) parent.getChildAt(0);
selected_tv.setTextColor(Color.BLUE);
还是白......
为什么会发生这种情况?如何解决?谢谢!
答案 0 :(得分:0)
TextView selected_tv = (TextView) parent.getChildAt(0);
selected_tv.setTextColor(Color.BLUE);
在此代码中,更改第一行(使用TextView的id):
TextView selected_tv = (TextView) parent.findViewById(R.id.selected_tv);
selected_tv.setTextColor(Color.BLUE);