列表类组件(下拉列表框Spinner)
- 下拉列表框:通常用于提供一系列可以选择的列表项来供用户选择。下拉列表框的右下角有一个小三角,点击这个小三角就可以展开列表框,选择某一项后列表框自动收起,列表框会显示选择的一项的内容。
在activity_main.xml文件中,用Spinner标签来定义下拉列表框:
- 属性:
- android:layout_width和android:layout_height :取值为wrap_content,即包裹其自身的内容。
- android:entries :设置下拉列表框中的选项。取值为一个数组资源。
首先在res/value目录下创建一个数组资源文件:
在array.xml文件中用string-array标签定义一个数组,用item标签定义数组中每一项的值:
运行后可以看到结果:
- 使用适配器来设置下拉列边框的选项内容:
可以不使用android:entries属性,直接在Java代码中使用适配器。
首先,给下拉列表框设置一个id,并注释掉android:entries属性:
在Java文件中进行如下操作:
package com.example.spinnerdemo;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
//定义一个下拉列表框
private Spinner spinner;
//定义一个Sting[]来存放选项内容
private String[] type=new String[]{"全部","电影","游戏","图书"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//定义一个数组适配器。第一个参数为一个上下文对象;
//第二个参数为android自带的下拉列表框的样式资源;
//第三个参数为存放选项内容的Strings[]
ArrayAdapter adapter=new ArrayAdapter(MainActivity.this,android.R.layout.simple_spinner_item,type);
//设置下拉列表框的下拉格式
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
//获取下拉列表框
spinner=findViewById(R.id.spinner);
//将adapter设置为spinner的适配器
spinner.setAdapter(adapter);
}
}
运行结果:
选择游戏:
4.在Java代码中获取用户选择的选项内容:
运行结果:
刚运行:
选择游戏: