一、界面

   1、新建province.xml件。

  在“res/values”位置新建province.xml文件。

  (1)province.xml文件位置如下图所示:

  

  (2)province.xml内容如下:  

  

  (3)代码  

  1. <?xmlversion="1.0"encoding="utf-8"?>

  2. <resources>

  3. <string-arrayname="provarray">

  4. <item>河南省</item>

  5. <item>河北省</item>

  6. <item>山东省</item>

  7. <item>山西省</item>

  8. </string-array>

  9. </resources>

(4)main_activity布局文件

<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:background="@drawable/liuyifei"
tools:context=".MainActivity" > <Spinner
android:id="@+id/province"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:entries="@array/province" /> <Spinner
android:id="@+id/city"
android:layout_width="wrap_content"
android:layout_height="wrap_content" /> </LinearLayout>

(5)Activity(src下的Java代码)

package com.example.item2jiliandong;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.Toast; public class MainActivity extends Activity { //声明Spinner对像
private Spinner spinProvince=null;
private Spinner spinCity=null;
//定义城市数据,用于二级菜单
private String[][] arrCity=new String[][]{
{"郑州","开封","洛阳","安阳"},
{"石家庄","保定","邯郸","张家口"},
{"济南","青岛","烟台","日照"},
{"太原","晋中","吕梁","临汾"}};
//声明数组适配器,用来填充城市列表
private ArrayAdapter<CharSequence> adapterCity=null; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//获取Spinner对象
spinProvince=(Spinner)super.findViewById(R.id.province);
spinCity=(Spinner)super.findViewById(R.id.city);
//为spinProvince控件注册OnItemSelected监听器
spinProvince.setOnItemSelectedListener(new ProvOnItemSelectedListener());
//为spinCity控件注册OnItemSelected监听器
spinCity.setOnItemSelectedListener(new CityOnItemSelectedListener());
} //OnItemSelected监听器
private class ProvOnItemSelectedListener implements OnItemSelectedListener{
//选择省份,触发城市下拉列表框
@Override
public void onItemSelected(AdapterView<?> adapter,View view,int position,long id) {
//使用ArrayAdapter转换数据
MainActivity.this.adapterCity=new ArrayAdapter<CharSequence>(
MainActivity.this,
android.R.layout.simple_spinner_item,
MainActivity.this.arrCity[position]);
//使用adapterCity数据适配器填充spinCity
MainActivity.this.spinCity.setAdapter(MainActivity.this.adapterCity); } @Override
public void onNothingSelected(AdapterView<?> arg0) {
//没有选择时执行
}
}
//OnItemSelected监听器
private class CityOnItemSelectedListener implements OnItemSelectedListener{
//选择城市,触发显示选择的城市
@Override
public void onItemSelected(AdapterView<?> adapter,View view,int position,long id) {
//获取选择的项的值
String sInfo=adapter.getItemAtPosition(position).toString();
Toast.makeText(getApplicationContext(), sInfo, Toast.LENGTH_LONG).show(); //MainActivity.this等价于 getApplicationContext()
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
//没有选择时执行
}
} }

(6)运行结果

运行运用程序所得结果如下图:

OnItemSelectedListener事件与二级联动的更多相关文章

  1. android中利用实现二级联动的效果

    按照惯例,首先上一张效果图. 本篇文章实现的效果就是如图中所圈的那样,实现类似于HTML中的二级联动的效果. 对于第一个选项我们读取的是本地xml文件来填充数据的, 对于第二个选项我们读取的是通过中央 ...

  2. Android之单复选框及Spinner实现二级联动

    一.基础学习 1.图形学真的很神奇啊....查了些资料做出了3D云标签,哈哈...其实直接拿来用的,我们要效仿鲁迅先生的拿来主义,嘿嘿~~3D标签云就是做一个球面,然后再球面上取均匀分布的点,把点坐标 ...

  3. Select标签下拉列表二级联动级联

    首先从服务器端,绑定下拉列表,二级下拉的text命名按照一定规则加上一级下拉的ID. var options=new Array(); $(document).ready(function(){ // ...

  4. 利用JavaScript来实现省份—市县的二级联动

    所谓省-市二级联动是指当选择省份下拉选择框时,市县的下拉框会根据选择的省市而有相应的市县加载出来,如下图所示选择"上海市",城市的下拉选择框只会出现上海的市县: 这种二级联动非常常 ...

  5. asp.net DropDownList无刷新ajax二级联动实现详细过程

    只适合新手制作DropDownList无刷新ajax二级联动效果: 数据库实现,添加两表如图:表1,pingpai,表2,type,具体数据库实现看自己的理解: //页面主要代码: <asp:S ...

  6. javascript二级联动

    二级联动在一般的网页中随处可见,一般是地址,比如点击浙江省,随后出现的是杭州市,嘉兴市:点击北京省出现的是朝阳,海淀,而不是出现杭州,嘉兴. 要想实现这个步骤,就要用到javascript来实现.其中 ...

  7. 原生js二级联动

    今天说的这个是原生js的二级联动,在空白页面里动态添加并作出相对应的效果. 1 //创建两个下拉列表 select标签 是下拉列表 var sel = document.createElement(& ...

  8. js-day04--Ajax应用--二级联动

    Ajax概述和实用需求 Ajax介绍/阿贾克斯:一.Ajax不是一项具体的技术,而是几门技术的综合应用. Javascript.XHTML和CSS.DOM.XML和XMLHttpRequest.二.A ...

  9. django xadmin后台页面实现二级联动

    思路 先找到控件id ,这样就可以监听change事件 然后把自己写的js加入xadmin中 添加url和view,接受ajax请求和发送数据 第一步:找到联动上下级的ID 在浏览器中通过F12查看 ...

随机推荐

  1. tableview 刷新 @property属性的用法

    1.tableView的刷新1> 数据刷新的总体步骤* 修改模型数据* 刷新表格(刷新界面) 2> 刷新表格(刷新界面)的方法* 全局刷新(每一行都会重新刷新)- (void)reload ...

  2. 端午小长假--前端基础学起来03CSS为网页添加样式

    定义:用于定义HTML内容在浏览器内的显示样式,如文字大小,颜色,字体 设置样式:将要设置样式的内容用<span></span>样式括起来,然后再head中设置span < ...

  3. 各种注释--------html,jsp

    1. <!--到梦之都XHTML教程的链接--> <a href="http://www.dreamdu.com/xhtml/"> 学习XHTML < ...

  4. hash算法

    作者:July.wuliming.pkuoliver 说明:本文分为三部分内容, 第一部分为一道百度面试题Top K算法的详解:第二部分为关于Hash表算法的详细阐述:第三部分为打造一个最快的Hash ...

  5. mybatis多对一关联的两种方式

    第一个种是Address找到自己的user_id,扔给User,让User自己去再查一次,即使在有缓存的前提下,每遇到一个新的user_id,就会查一次,对比hibernate的话,相当于多对一eag ...

  6. ACM - 动态规划专题 题目整理

    CodeForces 429B  Working out 预处理出从四个顶点到某个位置的最大权值,再枚举相遇点,相遇的时候只有两种情况,取最优解即可. #include<iostream> ...

  7. 收藏的博客--PHP

    32位Win7下安装与配置PHP环境(一至三)  http://blog.csdn.net/yousuosi/article/details/9448903

  8. mysql存储过程笔记

    http://blog.csdn.net/wangchao0605/article/details/5935988 基本语法 创建存储过程 create procedure sp_name()begi ...

  9. hdu 2075

    PS:水得不能再水..刚开始还以为是大数..要用到快速幂...谁知道想太多...就普通int型.. 代码: #include "stdio.h" int main(){ int a ...

  10. Oracle 获取用户表的字段定义

    获取用户表列表: select * from user_tables; select * from all_tables; select * from dba_tables; 获取表的字段: sele ...