【安卓开发】Spinner结合AdapterView的简单使用

368 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

背景原理

  • Spinner的控件,这个控件其实就是一个下拉显示列表。
  • 每次只显示用户选中的元素,当用户再次点击时,会弹出选择列表供用户选择,而选择列表中的元素同样来自适配器。Spinner是View类的一个子类。
  • Spinner组件一共有两个,一个是本身的Spinner,一个是android.support.v7.widget.AppCompatSpinner
  • 两者的区别在于v7内的Spinner是兼容低版本的,Spinner在高版本中才能使用的方法换了v7下的Spinner后可以一直兼容到2.1 (v7兼容到api7)
  • 除此之外两者的使用没有其他差别,推荐后续学习转到使用v7的Spinner,保证展示效果在不同版本上都能显示。

XML布局构思

  • Spinner的使用离不开和Adapter结合使用,下面将基本的常用方法介绍一下
  • 主要是textview文本框以及spinner下拉菜单构成

Main.java

  • 获取Spinner对象,进行监听,这里只提供一个下拉菜单情况的,要多做的话用法一样,由于3个spinner的代码太长就简短贴一下只有一个的
  • 初始化适配器,将数据源加载到适配器中。
  • 再将适配器加载到控件中:
  • 因为是静态的实现方法,需要事先设置好spinner要显示的内容。在String.xml文件中添加需要显示的内容
private Spinner spinner;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.info);

    spinner = (Spinner) findViewById(R.id.spinner);
    spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

        @Override
        public void onItemSelected(AdapterView<?> AdapterView, View view, int i, long l) {
            //获取适配器视图,点击下拉框显示学校名
            school = AdapterView.getItemAtPosition(i).toString();
        }

        @Override
        public void onNothingSelected(AdapterView<?> parent) {

        }
    });
}

类似设计效果图

  • 这里贴的图是点击考场的下拉菜单。

在这里插入图片描述