Android(安卓)下拉列表框(spinner)
16lz
2021-01-26
1、静态绑定下拉框数据
需要将数据写在xml中,然后设置下拉框的entries属性,则数据自动加载到下拉框中。具体如下:
在value文件夹中新建cityInfo.xml,xml中写入
[html] view plain copy
- <?xmlversion="1.0"encoding="utf-8"?>
- <resources>
- <string-arrayname="cityArray">
- <item>北京</item>
- <item>江苏</item>
- <item>浙江</item>
- <item>上海</item>
- </string-array>
- </resources>
[html] view plain copy
- <Spinnerandroid:id="@+id/spinnerCityStatic"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:entries="@array/cityArray"/>
2、动态绑定下拉框数据
主要三个步骤,1.获得数据列表;2.填充数据适配器;3.设置下拉框的适配器;
[java] view plain copy
- privateSpinnerspCity=null;
- privateArrayAdapter<CharSequence>adapterCity=null;
- privatestaticString[]cityInfo={"北京","江苏","浙江","上海"};
- //初始化函数中代码如下
- this.spCity=(Spinner)super.findViewById(R.id.spinnerCity);
- //将数据cityInfo填充到适配器adapterCity中
- this.adapterCity=newArrayAdapter<CharSequence>(this,
- android.R.layout.simple_spinner_dropdown_item,cityInfo);
- //设置下拉框的数据适配器adapterCity
- this.spCity.setAdapter(adapterCity);
3、选择时触发的事件
需要实现OnItemSelectedListener接口的onItemSelected方法,代码如下
- //下拉框选择事件
- privateclassOnItemSelectedListenerImplimplementsOnItemSelectedListener{
- @Override
- publicvoidonItemSelected(AdapterView<?>parent,Viewview,
- intposition,longid){
- Stringcity=parent.getItemAtPosition(position).toString();
- Toast.makeText(MainActivity.this,"选择的城市是:"+city,
- Toast.LENGTH_LONG).show();
- }
- @Override
- publicvoidonNothingSelected(AdapterView<?>parent){
- //TODOAuto-generatedmethodstub
- }
- }
4、获得下拉框所选的值
[java] view plain copy- StringcityStatic=spCityStatic.getSelectedItem().toString();
前台设计页面activity_main.xml如下:
[html] view plain copy
- <?xmlversion="1.0"encoding="utf-8"?>
- <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="match_parent"
- android:layout_height="match_parent">
- <Spinner
- android:id="@+id/spinnerCityStatic"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:entries="@array/cityArray"/>
- <Spinner
- android:id="@+id/spinnerCity"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"/>
- <Button
- android:id="@+id/btnShowCity"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="查看选择的结果"/>
- </LinearLayout>
[java] view plain copy
- packagecom.example.spinner0803;
- importandroid.app.Activity;
- importandroid.os.Bundle;
- importandroid.view.View;
- importandroid.view.View.OnClickListener;
- importandroid.widget.AdapterView;
- importandroid.widget.AdapterView.OnItemSelectedListener;
- importandroid.widget.ArrayAdapter;
- importandroid.widget.Button;
- importandroid.widget.Spinner;
- importandroid.widget.Toast;
- publicclassMainActivityextendsActivity{
- privateButtonbtnShowCity=null;
- privateSpinnerspCityStatic=null;
- privateSpinnerspCity=null;
- privateArrayAdapter<CharSequence>adapterCity=null;
- privatestaticString[]cityInfo={"北京","江苏","浙江","上海"};
- @Override
- protectedvoidonCreate(BundlesavedInstanceState){
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- //按钮相关
- btnShowCity=(Button)super.findViewById(R.id.btnShowCity);
- btnShowCity.setOnClickListener(newOnClickListenerImpl());
- //静态实现的下拉框,数据写在cityInfo.xml文件中
- this.spCityStatic=(Spinner)super
- .findViewById(R.id.spinnerCityStatic);
- this.spCityStatic
- .setOnItemSelectedListener(newOnItemSelectedListenerImpl());
- //动态实现的下拉框,数据在程序中获得,实际项目可能来自数据库等
- this.spCity=(Spinner)super.findViewById(R.id.spinnerCity);
- this.adapterCity=newArrayAdapter<CharSequence>(this,
- android.R.layout.simple_spinner_dropdown_item,cityInfo);
- this.spCity.setAdapter(adapterCity);
- this.spCity.setOnItemSelectedListener(newOnItemSelectedListenerImpl());
- }
- //按钮点击事件
- privateclassOnClickListenerImplimplementsOnClickListener{
- @Override
- publicvoidonClick(Viewv){
- StringcityStatic=spCityStatic.getSelectedItem().toString();
- Stringcity=spCity.getSelectedItem().toString();
- StringselectInfo="第一个选择的城市是:"+city+",第二个选择的城市是:"
- +cityStatic;
- Toast.makeText(MainActivity.this,selectInfo,Toast.LENGTH_LONG)
- .show();
- }
- }
- //下拉框选择事件
- privateclassOnItemSelectedListenerImplimplementsOnItemSelectedListener{
- @Override
- publicvoidonItemSelected(AdapterView<?>parent,Viewview,
- intposition,longid){
- Stringcity=parent.getItemAtPosition(position).toString();
- Toast.makeText(MainActivity.this,"选择的城市是:"+city,
- Toast.LENGTH_LONG).show();
- }
- @Override
- publicvoidonNothingSelected(AdapterView<?>parent){
- //TODOAuto-generatedmethodstub
- }
- }
- }
原文地址:http://blog.csdn.net/pfe_Nova/article/details/38362193
更多相关文章
- 把android db文件导入到项目中
- android存储方式(转)
- [置顶] Android大数据读取与折半查找(初步测试几毫秒)
- Android(安卓)自定义感光器控件SolarProgressView,也可当做普通Pr
- android 数据库 sqlite 操作
- android通过HTTP协议上传文件至远程服务器
- Android(安卓)Update Engine分析(七) DownloadAction之FileWriter
- SharedPreferences存与取,
- android 仿微信多图选择器(带预览、照相功能)