1、Spinner 设置点击效果
.9.png效果图片
sp_bg_unclick:Spinner的一些使用_Spinner,sp_bg_click:Spinner的一些使用_Spinner_02

新建selector文件:sp_bg_selector

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
  <item android:state_pressed="true" android:drawable="@drawable/sp_bg_click"></item>
    <item android:drawable="@drawable/sp_bg_unclick"></item>
</selector>


在布局文件中使用 android:background = "@drawable/sp_bg_selector"

2、Spinner下拉样式
Spinner的下拉样式决定了正常显示时Spinner的文字样式(颜色,大小,位置),以及下拉item的点击效果由Spinner的adapter决定如:

ArrayAdapter<String> spAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, objects);


我们只需要对android.R.layout.simple_list_item_1进行更改即可,如更改为sp_dropdown_item。
1)定义item的显示文件sp_dropdown_item

<?xml version="1.0" encoding="utf-8"?>
<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:textColor="@android:color/black" <!-- 文字黑色-->
  android:gravity="center"
  android:background="@drawable/sp_item_selector"/><!-- 白底,点击蓝色-->

2)定义item的点击效果sp_item_selector

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
  <item android:state_pressed="true" android:drawable="@drawable/blue"></item>
    <item android:drawable="@drawable/white"></item>
</selector>

3、Spinner初始化后接口方法onItemSelected()方法不执行:

Spinner sp= (Spinner)findViewById(R.id.sp);
ArrayAdapter<String> spAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, objects);
sp.setAdapter(spAdapter);
sp.setSelection(0, true);
sp.setOnItemSelectedListener(this);

setOnItemSelectedListener方法在setSelection方法后,则接口方法onItemSelected()在Spinner初始化后不执行。