Android下拉列表框
16lz
2021-01-26
周末翻了翻书,发现才歇了一两个月没看Android,好多看的东西又都还给书了,遂决定将所学的写到博客中,权当笔记(代码为主),巩固所学知识。
整理的下拉列表框示例代码中,主要分为以下部分:静态绑定下拉框数据、动态绑定下拉框数据、选择时触发的事件以及获得所选的值;
1、静态绑定下拉框数据
需要将数据写在xml中,然后设置下拉框的entries属性,则数据自动加载到下拉框中。具体如下:
在value文件夹中新建cityInfo.xml,xml中写入
<?xml version="1.0" encoding="utf-8"?><resources> <string-array name="cityArray"> <item>北京</item> <item>江苏</item> <item>浙江</item> <item>上海</item> </string-array></resources>设计页面控件代码:
<Spinner android:id="@+id/spinnerCityStatic" android:layout_width="wrap_content" android:layout_height="wrap_content" android:entries="@array/cityArray"/>
2、动态绑定下拉框数据
主要三个步骤,1.获得数据列表;2.填充数据适配器;3.设置下拉框的适配器;
private Spinner spCity = null;private ArrayAdapter<CharSequence> adapterCity = null;private static String[] cityInfo={"北京","江苏","浙江","上海"};//初始化函数中代码如下this.spCity = (Spinner) super.findViewById(R.id.spinnerCity);//将数据cityInfo填充到适配器adapterCity中this.adapterCity = new ArrayAdapter<CharSequence>(this,android.R.layout.simple_spinner_dropdown_item, cityInfo);//设置下拉框的数据适配器adapterCitythis.spCity.setAdapter(adapterCity);
3、选择时触发的事件
需要实现OnItemSelectedListener接口的onItemSelected方法,代码如下
//下拉框选择事件private class OnItemSelectedListenerImpl implements OnItemSelectedListener {@Overridepublic void onItemSelected(AdapterView<?> parent, View view,int position, long id) {String city = parent.getItemAtPosition(position).toString();Toast.makeText(MainActivity.this, "选择的城市是:" + city,Toast.LENGTH_LONG).show();}@Overridepublic void onNothingSelected(AdapterView<?> parent) {// TODO Auto-generated method stub}}
4、获得下拉框所选的值
String cityStatic = spCityStatic.getSelectedItem().toString();项目完整代码:
前台设计页面activity_main.xml如下:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns: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>后台页面MainActivity.java代码:
package com.example.spinner0803;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.AdapterView;import android.widget.AdapterView.OnItemSelectedListener;import android.widget.ArrayAdapter;import android.widget.Button;import android.widget.Spinner;import android.widget.Toast;public class MainActivity extends Activity {private Button btnShowCity = null;private Spinner spCityStatic = null;private Spinner spCity = null;private ArrayAdapter<CharSequence> adapterCity = null;private static String[] cityInfo={"北京","江苏","浙江","上海"};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//按钮相关btnShowCity = (Button) super.findViewById(R.id.btnShowCity);btnShowCity.setOnClickListener(new OnClickListenerImpl());//静态实现的下拉框,数据写在cityInfo.xml文件中this.spCityStatic = (Spinner) super.findViewById(R.id.spinnerCityStatic);this.spCityStatic.setOnItemSelectedListener(new OnItemSelectedListenerImpl());//动态实现的下拉框,数据在程序中获得,实际项目可能来自数据库等this.spCity = (Spinner) super.findViewById(R.id.spinnerCity);this.adapterCity = new ArrayAdapter<CharSequence>(this,android.R.layout.simple_spinner_dropdown_item, cityInfo);this.spCity.setAdapter(adapterCity);this.spCity.setOnItemSelectedListener(new OnItemSelectedListenerImpl());}//按钮点击事件private class OnClickListenerImpl implements OnClickListener {@Overridepublic void onClick(View v) {String cityStatic = spCityStatic.getSelectedItem().toString();String city = spCity.getSelectedItem().toString();String selectInfo = "第一个选择的城市是:" + city + ",第二个选择的城市是:"+ cityStatic;Toast.makeText(MainActivity.this, selectInfo, Toast.LENGTH_LONG).show();}}//下拉框选择事件private class OnItemSelectedListenerImpl implements OnItemSelectedListener {@Overridepublic void onItemSelected(AdapterView<?> parent, View view,int position, long id) {String city = parent.getItemAtPosition(position).toString();Toast.makeText(MainActivity.this, "选择的城市是:" + city,Toast.LENGTH_LONG).show();}@Overridepublic void onNothingSelected(AdapterView<?> parent) {// TODO Auto-generated method stub}}}项目运行截图:
项目源码下载
更多相关文章
- Android(安卓)C2DM学习——客户端代码开发
- 测试驱动开发与Android
- Android(安卓)如何使用NDK开发OPenGL ES
- 【android】个人推崇的数据库升级方式
- Android(安卓)studio下的Android(安卓)JNI调用以及动态链接库.so
- Android平台上最好的几款免费代码编辑器
- Android学习系列(5)--App布局初探之简单模型
- Android:“万能”Activity重构篇
- Android(安卓)--- App列表之分组ListView