spinner是一个经常用的控件,简单总结一下他的使用
1 找到spinner
sp=findViewById(R.id.spinnerTest)
2 准备adapter
作用他会为这个spinner填充数据
基类的是 BaseAdapter
子类有ArrayAdapter<T>, CursorAdapter, SimpleAdapter ,ResourceCursorAdapter, SimpleCursorAdapter
以 ArrayAdapter<T>为例
常用的构造方法:
ArrayAdapter(Context, int textViewResourceId)
ArrayAdapter(Context, int resource, int textViewResourceId)
ArrayAdapter(Context, int textViewResourceId, T[] objects)
ArrayAdapter(Context, int resource, int textViewResourceId, T[]) ArrayAdapter(Context, int textViewResourceId, List<T>)
ArrayAdapter(Context, int resource, int textViewResourceId, List<T>)
textViewResourceId是指弹出的窗口的文字layout的样式
3 设置弹出adapter弹出窗口的样式
adapter.setDropDownViewResource(R.layout.myspinner_dropdown);
注:ArrayAdapter的构造方法里面有2,3一起的设置的方法但是不知道为什么不可用.所以分开写
4 spinner设置数据
sp.setAdapter(adapter);
5 这样已经可以显示数据了,下面是数据的操作
可以用add(T), insert(T, int), remove(T), clear()) 更新数据
同时平台会自动刷新界面。
也可以手动控制刷新时机setNotifyOnChange (boolean notifyOnChange)
6增加响应事件
sp.setOnItemSelectedListener(new Spinner.OnItemSelectedListener()
{
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
long arg3)
{
arg0.setVisibility(View.VISIBLE);
}
@Override
public void onNothingSelected(AdapterView<?> arg0)
{
// TODO Auto-generated method stub
}
});