安卓开发: Spinner联动

来源:互联网 发布:女生运动鞋淘宝 编辑:程序博客网 时间:2024/06/04 22:16





主要就是实现上面图片的功能

先建立一个arrays.xml文件,然后建立几个string数组

<?xml version="1.0" encoding="utf-8"?><resources>    <string-array name="cou1">        <item >江苏</item>        <item >山东</item>            </string-array>    <string-array name="jiangsu">        <item >徐州</item>        <item >南京</item>    </string-array>    <string-array name="shandong">        <item >泰安</item>        <item >台儿庄</item>    </string-array>    </resources>

可以直接在布局文件中用entries对Spinner绑定一个数组

实现联动只要还是在后台代码中实现

final ArrayAdapter<String> ad1=new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, getResources().getStringArray(R.array.jiangsu));

首先得建立一个适配器,new的最后一个参数就是数组

也可以自己手动定义数组,这里面直接用到前台arrays.xml文件中的数组


对Spinner1设置setOnItemSelectedListener监听器

参数arg2就是spinner中选中元素的下标

package com.example.fuxi;import android.os.Bundle;import android.app.Activity;import android.view.Menu;import android.view.View;import android.widget.Adapter;import android.widget.AdapterView;import android.widget.AdapterView.OnItemSelectedListener;import android.widget.ArrayAdapter;import android.widget.Spinner;public class MainActivity extends Activity {Spinner sp1,sp2;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);sp1=(Spinner)findViewById(R.id.spinner1);sp2=(Spinner)findViewById(R.id.spinner2);final ArrayAdapter<String> ad1=new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, getResources().getStringArray(R.array.jiangsu));ad1.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);final ArrayAdapter<String> ad2=new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, getResources().getStringArray(R.array.shandong));ad2.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);    sp1.setOnItemSelectedListener(new OnItemSelectedListener() {@Overridepublic void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) {// TODO 自动生成的方法存根if(arg2==0){sp2.setAdapter(ad1);}if(arg2==1){sp2.setAdapter(ad2);}}@Overridepublic void onNothingSelected(AdapterView<?> arg0) {// TODO 自动生成的方法存根}});    }@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}}




原创粉丝点击