spinner使用

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
      }

    });

你可能感兴趣的:(Spinner)