博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android Spinner级联菜单实现
阅读量:5876 次
发布时间:2019-06-19

本文共 3519 字,大约阅读时间需要 11 分钟。

在开发中我们经常要遇到类似Spinner级联菜单的效果,下面就是Spinner级联菜单效果的实现

activity_main.xml

1 
2
6 7
11 12
13
14 15 16
17 18
24
25 26
31
32 33
37 38
43 44
50
51 52

 

array.xml

1 
2
3
4
请选择:
5
北京
6
上海
7
武汉
8
9 10

 

strings.xml

1 
2 3
SpinnerJi
4
Hello world!
5
Settings
6
MainActivity
7
下拉列表框选项
8
选择你喜欢的城市
9
选择你喜欢的城区
10 11

 

activity

1 package com.example.spinnerji; 2 import android.app.Activity; 3 import android.os.Bundle; 4 import android.view.View; 5 import android.widget.AdapterView; 6 import android.widget.AdapterView.OnItemSelectedListener; 7 import android.widget.ArrayAdapter; 8 import android.widget.Spinner; 9 import android.widget.TextView;10 11 public class MainActivity extends Activity {12     private Spinner city;// 一级菜单13     private Spinner area;// 二级菜单14     private TextView cityTextView;15     private TextView areTextView;16     private String[][] areaData = new String[][] {17             {"请选择:"},18             {"朝阳区","海淀区","西城区","大兴区","怀柔区"},19             {"闵行区"},20             {"洪山区","武昌区","东西湖区"}};21     private ArrayAdapter
adapterArea;22 23 @Override24 public void onCreate(Bundle savedInstanceState) {25 super.onCreate(savedInstanceState);26 setContentView(R.layout.activity_main);27 cityTextView=(TextView) findViewById(R.id.tex_city);28 areTextView=(TextView) findViewById(R.id.tex_area);29 city = (Spinner) findViewById(R.id.city);// 取得下拉列表框30 // 由于一个城市有多个市区,为了简单起见下面我们定义一个数组,通过数组保存若干个城市,而实际中需要单独的数据31 area = (Spinner) findViewById(R.id.area);// 取得下拉列表框32 city.setOnItemSelectedListener(new OnItemSelectedListenerImpl());33 area.setOnItemSelectedListener(new OnItemSelectedListenerImpl());34 city.setPrompt("选择你喜欢的城市");35 city.setPrompt("选择你喜欢的城区");36 }37 38 private class OnItemSelectedListenerImpl implements OnItemSelectedListener {39 public void onItemSelected(AdapterView
parent, View view,40 int position, long id) {
// 选项改变的时候触发41 42 switch (parent.getId()) {43 case R.id.city:44 String value = (String) parent.getItemAtPosition(position);// 得到选中的选项45 cityTextView.setText(value);46 adapterArea = new ArrayAdapter
(MainActivity.this,android.R.layout.simple_expandable_list_item_1,// 显示风格47 areaData[position]);// 在列表视图中所代表的对象。48 area.setAdapter(adapterArea);// 把adapterArea添加到area49 break;50 51 case R.id.area:52 String value2 = (String) parent.getItemAtPosition(position);// 得到选中的选项53 areTextView.setText(value2);54 break;55 }56 57 }58 59 public void onNothingSelected(AdapterView
arg0) {
// 没有选项的时候触发60 // 一般不关心61 62 }63 64 }65 }

 

转载于:https://www.cnblogs.com/all88/p/4097494.html

你可能感兴趣的文章
用于守护进程的出错处理函数
查看>>
AppCan可以视为Rexsee的存活版
查看>>
【转】SQL SERVER 2005 数据库状态为“可疑”的解决方法
查看>>
事件、委托、委托方法的总结(使用EventHandler<>)
查看>>
Revit API 创建带箭头的标注
查看>>
jetty启动报错Unsupported major.minor version 51.0
查看>>
Xamarin.Android开发实践(七)
查看>>
彩色图像上执行Mean Shift迭代搜索目标 ,维加权直方图 + 巴氏系数 + Mean Shift迭代...
查看>>
深入理解JavaScript系列
查看>>
strtol 函数用法
查看>>
eclipse内存溢出设置
查看>>
搭建jenkins环境(linux操作系统)
查看>>
VS 2015 GIT操作使用说明
查看>>
上海办理房产税变更
查看>>
每天一个linux命令(52):scp命令
查看>>
CMOS Sensor Interface(CSI)
查看>>
linq中的contains条件
查看>>
HDU 5590 ZYB's Biology 水题
查看>>
memcached 分布式聚类算法
查看>>
言未及之而言,谓之躁;言及之而不言,谓之隐;未见颜色而言,谓之瞽(gǔ)...
查看>>