Spinner提供了从一个数据集合中快速选择一项值的办法。默认情况下Spinner显示的是当前选择的值,点击Spinner会弹出一个包含所有可选值的dropdown菜单,从该菜单中可以为Spinner选择一个新值。通俗一点来讲就是下拉列表。
下面用一个例子展示一下效果:
XML文件里的代码:
<Spinner
android:id="@+id/spinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
android:id="@+id/spinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
MainActivity里的代码:
public class MainActivity extends AppCompatActivity {
private Spinner spinner;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
spinner = (Spinner)findViewById(R.id.spinner);
//添加一个下拉列表的list
final List<String> list = new ArrayList<String>();
list.add("Spinner item1");
list.add("Spinner item2");
list.add("Spinner item3");
//为下拉列表定义一个适配器,这里要用得到前面的list
private Spinner spinner;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
spinner = (Spinner)findViewById(R.id.spinner);
//添加一个下拉列表的list
final List<String> list = new ArrayList<String>();
list.add("Spinner item1");
list.add("Spinner item2");
list.add("Spinner item3");
//为下拉列表定义一个适配器,这里要用得到前面的list
//android.R.layout.simple_spinner_dropdown_item 是android内置的一个布局
ArrayAdapter<String> adapter = new ArrayAdapter<String>(MainActivity.this,android.R.layout.simple_spinner_dropdown_item,list);
//设置下拉列表的风格
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
//将适配器加到下拉列表中
spinner.setAdapter(adapter);
//设置默认选中的值 0表示默认选中第一项
spinner.setSelection(0,true);
//菜单被选中 点击当前选项不会显示Toast
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(MainActivity.this,"当前选择的是:"+list.get(position),Toast.LENGTH_LONG).show();
}
public void onNothingSelected(AdapterView<?> parent) {
}
});
}
}
ArrayAdapter<String> adapter = new ArrayAdapter<String>(MainActivity.this,android.R.layout.simple_spinner_dropdown_item,list);
//设置下拉列表的风格
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
//将适配器加到下拉列表中
spinner.setAdapter(adapter);
//设置默认选中的值 0表示默认选中第一项
spinner.setSelection(0,true);
//菜单被选中 点击当前选项不会显示Toast
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(MainActivity.this,"当前选择的是:"+list.get(position),Toast.LENGTH_LONG).show();
}
public void onNothingSelected(AdapterView<?> parent) {
}
});
}
}
运行图如下:
1.进入程序,默认选定第一个选项
2.点击选取item2 显示Toast