本文已参与「新人创作礼」活动,一起开启掘金创作之路。
背景原理
- 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) {
}
});
}
类似设计效果图
- 这里贴的图是点击考场的下拉菜单。