Spinner的二级联动
2016-01-22 18:29
375 查看
在网上搜了好多方法,发现大部分都是利用数组实现,感觉麻烦,于是跟着老师的思路写了一个。
特别注意:本例将数据源写入strings.xml中
难点:注意数据源在strings.xml中的写法,获取数据源的方法,最重要的是初始化适配器参数问题
布局文件:
strings.xml内容:
MainActivity.java
特别注意:本例将数据源写入strings.xml中
难点:注意数据源在strings.xml中的写法,获取数据源的方法,最重要的是初始化适配器参数问题
[code]1.创建数据源 2.初始化Spinner 3.初始化适配器 4.设置适配器 5.设置Spinner的监听器 6.在Spinner的监听器中完成第二个Spinner的适配器设置
布局文件:
[code]<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:orientation="vertical"> <Spinner android:id="@+id/spinner1" android:layout_width="match_parent" android:layout_height="50dp" android:spinnerMode="dropdown" android:background="#fff"/> <Spinner android:layout_marginTop="20dp" android:id="@+id/spinner2" android:layout_width="match_parent" android:layout_height="50dp" android:spinnerMode="dropdown" android:background="#fff"/> </LinearLayout>
strings.xml内容:
[code]<?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">Day04spinner</string> <string name="action_settings">Settings</string> <string name="hello_world">Hello world!</string> <string-array name ="pro"> <item>河南</item> <item>北京</item> <item>江苏</item> </string-array> <string-array name ="henan"> <item>安阳</item> <item>洛阳</item> <item>南阳</item> <item>信阳</item> </string-array> <string-array name ="beijing"> <item>海淀区</item> <item>房山区</item> <item>朝阳区</item> <item>昌平区</item> </string-array> <string-array name ="jiangsu"> <item>昆山</item> <item>吴江</item> <item>无锡</item> </string-array> </resources>
MainActivity.java
[code]package com.example.day04spinner; import android.os.Bundle; import android.app.Activity; import android.util.Log; import android.view.Menu; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemSelectedListener; import android.widget.ArrayAdapter; import android.widget.Spinner; public class MainActivity extends Activity { private Spinner spinner1; private Spinner spinner2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //2.Spinner 控件 spinner1 =(Spinner) findViewById(R.id.spinner1); spinner2 =(Spinner) findViewById(R.id.spinner2); //xml中的数据源 String []content=getResources().getStringArray(R.array.pro); //3.初始化适配器 ArrayAdapter<String> arrayadapter1=new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_spinner_item,content); //4.将适配器中的数据Set到spinner中 spinner1.setAdapter(arrayadapter1); //5.给Spinner设置监听器 spinner1.setOnItemSelectedListener(new OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { if(0==position){ //6.第一个Spinner的监听器中给第二个Spinner设置适配器 String[]content2=getResources().getStringArray(R.array.henan); ArrayAdapter<String> arrayadapter2=new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_spinner_item,content2); spinner2.setAdapter(arrayadapter2); }else if(1==position){ String[]content2=getResources().getStringArray(R.array.beijing); ArrayAdapter<String> arrayadapter2=new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_spinner_item,content2); spinner2.setAdapter(arrayadapter2); }else if(2==position){ String[]content2=getResources().getStringArray(R.array.jiangsu); ArrayAdapter<String> arrayadapter2=new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_spinner_item,content2); spinner2.setAdapter(arrayadapter2); } } @Override public void onNothingSelected(AdapterView<?> parent) { } }); } }
相关文章推荐
- ARM的BIN文件反汇编方法
- magento 本地后台登录不了,前台不能登陆
- Java继承理解
- Android 防内存泄露的AsyncTask--WeakAsyncTask
- android 常用包
- 计算对象所占的内存空间
- Python 高级特性之 map( )
- css垂直居中
- HDOJ 2032 杨辉三角
- 【poj 1451】T9 (字典树+深搜)
- 浏览器的渲染机制
- [LeetCode] Two sum
- 简易输出Huffman编码
- 一个非常棒的jQuery 评分插件--好东西要分享
- C++ 类的对象和类的指针的区别
- UIView的layoutSubviews和drawRect方法何时调用
- myEclipse出现An internal error occurred during...的解决方案
- hiho 27 最小生成树二·Kruscal算法
- 2015年终总结----让一切归0
- hdu 2050