Android UI(Spinner)详解
2016-08-12 21:28
405 查看
目录
1.应用场景
2.常用属性
3.xml数据源+布局实现Spinner
4.Arrayadapter+ArrayList+布局实现Spinner
5.自定义adapter+数据源+布局实现Spinner
6.多级连联动Spinner实现(市县区三级联动)
1.应用场景
Spinner即列表选项框多应用于城市选择或者一些搜索分类选取一种的情况
2.常用属性
3.xml数据源+布局实现Spinner
1)数据源myarraylist.xml
2)主布局xml
3)Java类文件
4)效果截图
4.Arrayadapter+ArrayList+布局实现Spinner
1)自定义的已选取item的布局drop_item.xml
2)主布局文件
3)Java文件代码
4)从xml文件加载数据适配
5)效果截图
5.自定义adapter+数据源+布局实现Spinner
1)自定义adapter,MyCustomAdapter.java
2)每个下拉列表item布局custom_drop_layout.xml
3)主布局xml
4)主布局Java文件ThreeActivity.java
5)效果截图
6.多级连联动Spinner实现(市县区三级联动)
1)数据spinner_array_data.xml
2)主布局activity_four.xml
3)主布局java文件FourActivity.java
4)效果截图
1.应用场景
2.常用属性
3.xml数据源+布局实现Spinner
4.Arrayadapter+ArrayList+布局实现Spinner
5.自定义adapter+数据源+布局实现Spinner
6.多级连联动Spinner实现(市县区三级联动)
1.应用场景
Spinner即列表选项框多应用于城市选择或者一些搜索分类选取一种的情况
2.常用属性
<span style="font-size:14px;"> <!--设置xml数组资源--> android:entries="@values/" <!--设置列表框背景--> android:popupBackground="" <!--列表框选中时的背景--> android:dropDownSelector="" <!--设置显示选择项的宽--> android:layout_width="wrap_content" <!--设置显示选择项的高--> android:layout_height="wrap_content" <!--设置列表框的水平偏移量--> android:dropDownHorizontalOffset="12dp" <!--设置列表框的垂直偏移量--> android:dropDownVerticalOffset="1dp" <!--设置列表框的宽度--> android:dropDownWidth="40dp" <!--设置spinner的显示模式--> android:spinnerMode="dropdown|dialog" <!--设置列表框的scrollbar的布局方式--> android:scrollbars="vertical" <!--设置对话框模式的标题,仅限strings.xml设置的资源--> android:prompt="" <!--设置列表框的水平scrollbar的drawble--> android:scrollbarThumbHorizontal="@mipmap/ic_launcher" <!--设置垂直滚动条的背景--> android:scrollbarTrackHorizontal=""</span>
3.xml数据源+布局实现Spinner
1)数据源myarraylist.xml
<span style="font-size:14px;"><?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="myarraydata"> <item>上海</item> <item>北京</item> <item>广州</item> <item>深圳</item> <item>杭州</item> <item>成都</item> </string-array> </resources> </span>
2)主布局xml
<span style="font-size:14px;"><?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.spinnerui.MainActivity"> <Spinner android:id="@+id/dropdownSp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:spinnerMode="dropdown" android:dropDownHorizontalOffset="5dp" android:dropDownVerticalOffset="5dp" android:entries="@array/myarraydata" > </Spinner> </RelativeLayout></span>
3)Java类文件
<span style="font-size:14px;">package com.example.spinnerui; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.util.Log; import android.view.View; import android.widget.AdapterView; import android.widget.Spinner; import android.widget.Toast; import java.util.ArrayList; public class MainActivity extends AppCompatActivity { private Spinner dropdownSp; //Spinner默认选择第一项,所以刚进入是会触发onItemSelected事件,为了解决这个问题定义类firstSelect private boolean firstSelect=true; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //初始化 dropdownSp= (Spinner) findViewById(R.id.dropdownSp); //设置监听 dropdownSp.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { /* * parent:指示spinner * view:显示item的空间,这里指TextView * position:被选中的item的位置 * id:选中项的id * */ @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { if (!firstSelect) { //打印提示,parent.getItemAtPosition(position)获取选中位置的值 Toast.makeText(MainActivity.this,"你选择了:"+parent.getItemAtPosition(position).toString(), Toast.LENGTH_SHORT).show(); Log.d("id",id+""); Log.d("position",position+""); Log.d("view",view.toString()); Log.d("parent",parent.toString()); }else { firstSelect=false; } } @Override public void onNothingSelected(AdapterView<?> parent) { } }); } } </span>
4)效果截图
4.Arrayadapter+ArrayList+布局实现Spinner
1)自定义的已选取item的布局drop_item.xml
<span style="font-size:14px;"><?xml version="1.0" encoding="utf-8"?> <TextView android:id="@+id/list_item" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="@color/colorAccent" xmlns:android="http://schemas.android.com/apk/res/android" /></span>
2)主布局文件
<span style="font-size:14px;"><?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.spinnerui.SecondActivity"> <Spinner android:id="@+id/dialogSp" android:layout_width="80dp" android:layout_height="wrap_content" android:spinnerMode="dialog" android:prompt="@string/dialog_title" android:dropDownHorizontalOffset="20dp" android:dropDownVerticalOffset="5dp" > </Spinner> </RelativeLayout></span>
3)Java文件代码
package com.example.spinnerui; import android.content.Context; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.util.Log; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.Spinner; import android.widget.Toast; import java.util.ArrayList; public class SecondActivity extends AppCompatActivity { private Spinner dialogSp; private boolean firstSelect=true; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_second); //初始化 dialogSp= (Spinner) findViewById(R.id.dialogSp); //初始化数据源 ArrayList<String> array=new ArrayList<String>(); for (int i=0;i<5;i++){ array.add(i,"数据"+i); } /* * ArrayAdapter(Context context, int resource, List<T> objects) * context:表示上下文 * int resource:选取的item的布局 * objects:数据 * */ //系统内置的选取的Item的TextView布局:android.R.layout.simple_spinner_item //自定义的选取的Item的TextView布局:R.layout.drop_item ArrayAdapter<String> myArrayAdapter = new ArrayAdapter<String>(this,R.layout.drop_item,array); //设置列表框item的布局 myArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); //设置适配器 dialogSp.setAdapter(myArrayAdapter); //设置监听 dialogSp.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { /* * parent:指示spinner * view:显示item的空间,这里指TextView * position:被选中的item的位置 * id:选中项的id * */ @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { if (!firstSelect) { //打印提示,parent.getItemAtPosition(position)获取选中位置的值 Toast.makeText(SecondActivity.this,"你选择了:"+parent.getItemAtPosition(position).toString(), Toast.LENGTH_SHORT).show(); Log.d("id",id+""); Log.d("position",position+""); Log.d("view",view.toString()); Log.d("parent",parent.toString()); }else { firstSelect=false; } } @Override public void onNothingSelected(AdapterView<?> parent) { } }); } }
4)从xml文件加载数据适配
ArrayAdapter<CharSequence> myArrayAdapter = ArrayAdapter.createFromResource(this, R.array.myarraydata, android.R.layout.simple_spinner_item);
5)效果截图
5.自定义adapter+数据源+布局实现Spinner
1)自定义adapter,MyCustomAdapter.java
package com.example.spinnerui; import android.content.Context; import android.graphics.drawable.Drawable; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.TextView; import java.util.List; import java.util.Map; import java.util.Objects; /** * Created by elimy on 2016-08-10. */ public class MyCustomAdapter extends BaseAdapter { private Context context; private List<Map<String,Object>> list; private LayoutInflater inflater; /* *带参构造方法 */ public MyCustomAdapter(List<Map<String, Object>> list, Context context) { this.list = list; this.context = context; inflater =LayoutInflater.from(context); } @Override public int getCount() { return list.size(); } @Override public Object getItem(int position) { return position; } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder =null; if (holder == null){ holder=new ViewHolder(); if(convertView ==null){ convertView=inflater.inflate(R.layout.custom_drop_layout,null); holder.imageView = (ImageView) convertView.findViewById(R.id.app_icon); holder.appText = (TextView) convertView.findViewById(R.id.list_item); holder.descText = (TextView) convertView.findViewById(R.id.list_desc); convertView.setTag(holder); }else { //根据Tag获取已经存在的ViewHolder holder = (ViewHolder) convertView.getTag(); } //设置显示内容 holder.appText.setText(list.get(position).get("name").toString()); holder.descText.setText(list.get(position).get("desc").toString()); holder.imageView.setBackgroundResource((Integer)list.get(position).get("image")); } return convertView; } /* *实现ViewHolder类 */ class ViewHolder{ public ImageView imageView; public TextView appText; public TextView descText; } }
2)每个下拉列表item布局custom_drop_layout.xml
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.spinnerui.ThreeActivity"> <ImageView android:id="@+id/app_icon" android:background="@drawable/camera" android:layout_width="50dp" android:layout_height="50dp" /> <TextView android:id="@+id/list_item" android:gravity="center" android:textSize="24sp" android:paddingLeft="20dp" android:layout_toRightOf="@id/app_icon" android:layout_width="wrap_content" android:text="app name" android:layout_height="wrap_content" /> <TextView android:id="@+id/list_desc" android:gravity="center" android:textSize="14sp" android:paddingLeft="20dp" android:layout_below="@id/list_item" android:layout_toRightOf="@id/app_icon" android:layout_width="wrap_content" android:singleLine="true" android:text="app describe" android:layout_height="wrap_content" /> </RelativeLayout>
3)主布局xml
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.spinnerui.ThreeActivity"> <Spinner android:id="@+id/dropdownSp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:spinnerMode="dropdown" android:dropDownHorizontalOffset="20dp" android:dropDownVerticalOffset="5dp" > </Spinner> </RelativeLayout>
4)主布局Java文件ThreeActivity.java
package com.example.spinnerui; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.util.Log; import android.view.View; import android.widget.AdapterView; import android.widget.Spinner; import android.widget.Toast; import java.util.ArrayList; import java.util.HashMap; import java.util.Map; public class ThreeActivity extends AppCompatActivity { private Spinner dropdownSp; private ArrayList<Map<String,Object>> list = new ArrayList<Map<String,Object>>(); private Map<String,Object> map; private boolean firstSelect=true; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_three); //初始化 dropdownSp= (Spinner) findViewById(R.id.dropdownSp); //初始化自定义adapter list=getData(); MyCustomAdapter myCustomAdapter = new MyCustomAdapter(list,ThreeActivity.this); dropdownSp.setAdapter(myCustomAdapter); //设置监听 dropdownSp.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { /* * parent:指示spinner * view:显示item的空间,这里指TextView * position:被选中的item的位置 * id:选中项的id * */ @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { if (!firstSelect) { //打印提示,parent.getItemAtPosition(position)获取选中位置的值 Toast.makeText(ThreeActivity.this,"你选择了:"+list.get(position).get("name").toString(), Toast.LENGTH_SHORT).show(); Log.d("id",id+""); Log.d("position",position+""); Log.d("view",view.toString()); Log.d("parent",parent.toString()); }else { firstSelect=false; } } @Override public void onNothingSelected(AdapterView<?> parent) { } }); } /* 初始化数据源 */ private ArrayList<Map<String,Object>> getData() { map=new HashMap<String, Object>(); map.put("image",R.drawable.calendar); map.put("name","日历"); map.put("desc","这是一款超级时尚的日历APP"); list.add(map); map=new HashMap<String, Object>(); map.put("image",R.drawable.camera); map.put("name","相机"); map.put("desc","完美美颜,美美哒"); list.add(map); map=new HashMap<String, Object>(); map.put("image",R.drawable.clock); map.put("name","闹钟"); map.put("desc","妈妈再也不担心你睡懒觉啦"); list.add(map); map=new HashMap<String, Object>(); map.put("image",R.drawable.games_control); map.put("name","游戏控制"); map.put("desc","游戏尽在掌握"); list.add(map); return list; } }
5)效果截图
6.多级连联动Spinner实现(市县区三级联动)
1)数据spinner_array_data.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="province_data"> <item>上海</item> <item>湖南</item> <item>浙江</item> <item>四川</item> </string-array> <!--上海市县区数据--> <string-array name="shanghai_city_data"> <item>黄浦区</item> <item>长宁区</item> <item>虹口区</item> <item>浦东新区</item> </string-array> <array name="huangpu_county_data"> <item>南京东路街道</item> <item>外滩街道</item> <item>半淞园路街道</item> </array> <array name="changning_county_data"> <item>华阳路街道</item> <item>江苏路街道</item> <item>新华路街道</item> </array> <array name="hongkou_county_data"> <item>欧阳路街道</item> <item>曲阳路街道</item> <item>广中路街道</item> </array> <array name="pudong_county_data"> <item>潍坊新村街道</item> <item>陆家嘴街道</item> <item>周家渡街道</item> </array> <!--湖南省市县区数据--> <array name="hunan_city_data"> <item>长沙市</item> <item>湘潭市</item> <item>衡阳市</item> <item>岳阳市</item> </array> <array name="xiangtan_county_data"> <item>雨湖区</item> <item>岳塘区</item> <item>湘潭县</item> </array> <array name="changsha_county_data"> <item>天心区</item> <item>芙蓉区</item> <item>长沙县</item> </array> <array name="hengyang_county_data"> <item>珠晖区</item> <item>雁峰区</item> <item>石鼓区</item> </array> <array name="yueyang_county_data"> <item>岳阳楼区</item> <item>云溪区</item> <item>君山区</item> </array> <!--四川省市县区数据--> <array name="sichuan_city_data"> <item>成都市</item> <item>雅安市</item> <item>乐山市</item> <item>资阳市</item> </array> <array name="chengdu_county_data"> <item>高新区</item> <item>金牛区</item> <item>青羊区</item> </array> <array name="yaan_county_data"> <item>宝兴县</item> <item>小金县</item> <item>芦山县</item> </array> <array name="leshang_county_data"> <item>市中区</item> <item>沙湾区</item> <item>五通桥区</item> </array> <array name="ziyang_county_data"> <item>雁江区</item> <item>安岳县</item> <item>乐至县</item> </array> <!--浙江省市县区数据--> <array name="zhejiang_city_data"> <item>杭州市</item> <item>温州市</item> <item>宁波市</item> <item>嘉兴市</item> </array> <array name="hangzhou_county_data"> <item>下城区</item> <item>江干区</item> <item>西湖区</item> </array> <array name="wenzhou_county_data"> <item>鹿城区</item> <item>龙湾区</item> <item>瓯海区</item> </array> <array name="ningbo_county_data"> <item>海曙区</item> <item>江东区</item> <item>江北区</item> </array> <array name="jiaxing_county_data"> <item>南湖区</item> <item>秀洲区</item> <item>嘉善县</item> </array> </resources>
2)主布局activity_four.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:orientation="vertical" tools:context="com.example.spinnerui.FourActivity"> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="18sp" android:text="@string/province"/> <Spinner android:id="@+id/provinceSpinner" android:layout_marginLeft="20dp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:spinnerMode="dropdown" android:textSize="18sp" android:dropDownHorizontalOffset="20dp" android:dropDownVerticalOffset="5dp" /> </LinearLayout> <LinearLayout android:layout_width="wrap_content" android:layout_marginTop="10dp" android:layout_height="wrap_content" android:orientation="horizontal" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="18sp" android:text="@string/city"/> <Spinner android:layout_marginLeft="20dp" android:id="@+id/citySpinner" android:layout_width="wrap_content" android:layout_height="wrap_content" android:spinnerMode="dropdown" android:textSize="18sp" android:dropDownHorizontalOffset="20dp" android:dropDownVerticalOffset="5dp" /> </LinearLayout> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:orientation="horizontal" > <TextView android:layout_width="wrap_content" android:textSize="18sp" android:layout_height="wrap_content" android:text="@string/county"/> <Spinner android:id="@+id/countySpinner" android:layout_width="wrap_content" android:layout_height="wrap_content" android:spinnerMode="dropdown" android:textSize="18sp" android:layout_marginLeft="20dp" android:dropDownHorizontalOffset="20dp" android:dropDownVerticalOffset="5dp" /> </LinearLayout> <TextView android:id="@+id/result" android:layout_marginTop="10dp" android:layout_width="wrap_content" android:textSize="18sp" android:layout_height="wrap_content" android:text="结果"/> </LinearLayout>
3)主布局java文件FourActivity.java
package com.example.spinnerui; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.util.Log; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.Spinner; import android.widget.TextView; /** * 注意:在初始化int[]数组的时候,注意city数组中的数据index要与province array.xml中的顺序要一致,county数组也是 * 同样的道理,这样才可以实现省份和城市数据对应,城市和县区数据对应。 * ps:提供另一种思路就是将county数据设置为二维数组,对应分别对应省份和城市 * */ public class FourActivity extends AppCompatActivity { private Spinner provinceSpinner, citySpinner, countySpinner; private ArrayAdapter<CharSequence> provinceAdapter, cityAdapter, countyAdapter; private TextView result; private String provinceName, cityName, countyName; private boolean firstSelect = true; //省份对应的城市数组初始化,将城市数组和省份的positon关联起来 int[] cityofprovince = { R.array.shanghai_city_data, R.array.hunan_city_data, R.array.zhejiang_city_data, R.array.sichuan_city_data }; //城市对应的区县数组初始化,将县区和城市positon关联起来 int[] shanghaicityofcounty = { R.array.huangpu_county_data, R.array.changning_county_data, R.array.hongkou_county_data, R.array.pudong_county_data }; int[] hunancityofcounty = { R.array.changsha_county_data, R.array.xiangtan_county_data, R.array.hengyang_county_data, R.array.yueyang_county_data }; int[] zhejiangcityofcounty = { R.array.hangzhou_county_data, R.array.wenzhou_county_data, R.array.ningbo_county_data, R.array.jiaxing_county_data }; int[] sichuancityofcounty = { R.array.chengdu_county_data, R.array.yaan_county_data, R.array.leshang_county_data, R.array.ziyang_county_data }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_four); //实例化spinner provinceSpinner = (Spinner) findViewById(R.id.provinceSpinner); citySpinner = (Spinner) findViewById(R.id.citySpinner); countySpinner = (Spinner) findViewById(R.id.countySpinner); result = (TextView) findViewById(R.id.result); //从xml文件资源中实例化provinceAdapter provinceAdapter = ArrayAdapter.createFromResource(FourActivity.this, R.array.province_data, android.R.layout.simple_spinner_item); //设置下拉列表布局,android.R.layout.simple_spinner_dropdown_item android内置的布局 provinceAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); //设置适配器 provinceSpinner.setAdapter(provinceAdapter); //省级spinner添加监听事件 provinceSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { provinceName = provinceSpinner.getSelectedItem().toString(); final int provinceId = provinceSpinner.getSelectedItemPosition(); Log.d("debug:", provinceName + "+" + provinceId); //根据选取province的position从一开始的int数组中动态适配相应的city数据 if(true){ cityAdapter = ArrayAdapter.createFromResource(FourActivity.this, cityofprovince[position], android.R.layout.simple_spinner_item); cityAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); citySpinner.setAdapter(cityAdapter); //设置select事件监听 citySpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { //获取选中item的文本 cityName = citySpinner.getSelectedItem().toString(); //获取选中position int cityId = citySpinner.getSelectedItemPosition(); Log.d("debug:", cityName + "+" + cityId); switch (provinceId) { case 0: setAdapterFun(shanghaicityofcounty[cityId]); break; case 1: setAdapterFun(hunancityofcounty[cityId]); break; case 2: setAdapterFun(zhejiangcityofcounty[cityId]); break; case 3: setAdapterFun(sichuancityofcounty[cityId]); break; default: break; } //为countySpinner设置监听器 countySpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { //根据位置获取文本内容 countyName = countySpinner.getSelectedItem().toString(); Log.d("debug:", countyName + "+" + countyName); result.setText("你的选择是:"+provinceName+"—>"+cityName+"—>"+countyName); } @Override public void onNothingSelected(AdapterView<?> parent) { } }); } @Override public void onNothingSelected(AdapterView<?> parent) { } }); } } @Override public void onNothingSelected(AdapterView<?> parent) { } }); } /* function:功能主要是采取通用的方式为Spinner设置不同的数据 * @param: i 表示对应数据数组的id值 * */ private void setAdapterFun(int i) { //通过xml文件初始化ArrayAdapter countyAdapter = ArrayAdapter.createFromResource(FourActivity.this, i, android.R.layout.simple_spinner_item); //设置下拉列表框布局 countyAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); //为countySpinner设置适配器 countySpinner.setAdapter(countyAdapter); } }
4)效果截图
相关文章推荐
- Android UI控件详解-Spinner(下拉列表)
- 【Android UI】 Shape详解
- 多图详解 “Android UI”设计官方教程(1)
- 多图详解 “Android UI”设计官方教程(二)
- Android UI控件之Spinner(下拉列表)
- Android UI开发详解之Layout_gravity和gravity的区别
- android Spinner详解
- Android UI控件之Spinner实现省市区三级联动
- Android spinner 样式及其使用详解
- (android UI )shape详解,改变控件的默认样式(GradientDrawable)
- Android UI开发详解之ActionBar
- 详解如何让Android UI“.NET研究”设计性能更高效
- 【Android UI】 Shape详解 (GradientDrawable)
- Android 组件样式(UI) shape详解
- 多图详解 “Android UI”设计官方教程(一)
- Android-UI详解:软键盘弹出后,动态改变UI布局(IM聊天窗口设计示例)
- 多图详解 “Android UI”设计官方教程
- 【Android UI】 Shape详解
- 【Android UI】 Shape详解 (GradientDrawable)
- Android UI控件之Spinner实现省市区三级联动