1,概念
位于android.widget包。
是View的一个子类。
2,spinner属性
1)对spinner的选择事件不需要响应
如果需要响应,通过OnItemSelectedListener回调方法实现。
Android:entries="@array/languages"
表示Spinner的数据集合是从资源数组languages中获取的,languages数组资源定义在values/arrays.xml中:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="languages">
<item>c语言</item>
<item>java </item>
<item>php</item>
<item>xml</item>
<item>html</item>
</string-array>
</resources>
2)菜单显示方式
一种是下拉菜单(dropdown),一种是弹出框(dialog)。
android:spinnerMode="dropdown"
android:spinnerMode="dialog"
3)对话框的标题
prompt:在Spinner弹出选择对话框的时候对话框的标题。
3,自定义spinner
1)xml用spinner控件
2)自定义adapter
继承BaseAdapter。点击查看自定义adapter写法
3)主界面
Spinner点击选中Item有时不再调用onItemSelected方法的方案
sp.setAdapter(adapter_planeGate);
sp.setOnItemSelectedListener(this);
// Spinner点击选中Item不再调用onItemSelected方法的方案
sp.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
try {
Class<?> clazz = AdapterView.class;
Field field = clazz.getDeclaredField("mOldSelectedRowId");
field.setAccessible(true);
field.setInt(sp_planeGate,Integer.MIN_VALUE);
} catch(Exception e){
e.printStackTrace();
}
return false;
}
});
获得当前选中内容
sp.getSelectedItem().toString()
设置样式
sp.setBackgroundDrawable(getResources().getDrawable(R.drawable.sp_icon));
spinner选中事件调用方法:
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
}