Android练习——Spinner二级联动_城市选择

样式部分xml

 1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 2     xmlns:tools="http://schemas.android.com/tools"
 3     android:layout_width="match_parent"
 4     android:layout_height="match_parent"
 5     android:paddingBottom="@dimen/activity_vertical_margin"
 6     android:paddingLeft="@dimen/activity_horizontal_margin"
 7     android:paddingRight="@dimen/activity_horizontal_margin"
 8     android:paddingTop="@dimen/activity_vertical_margin"
 9     tools:context=".MainActivity" >
10
11     <TextView
12         android:id="@+id/textView1"
13         android:layout_width="wrap_content"
14         android:layout_height="wrap_content"
15         android:text="请选择城市" />
16
17     <Spinner
18         android:id="@+id/spinner1"
19         android:layout_width="wrap_content"
20         android:layout_height="wrap_content"
21         android:layout_alignLeft="@+id/textView1"
22         android:layout_below="@+id/textView1" />
23
24     <Spinner
25         android:id="@+id/spinner2"
26         android:layout_width="wrap_content"
27         android:layout_height="wrap_content"
28         android:layout_alignLeft="@+id/spinner1"
29         android:layout_below="@+id/spinner1" />
30
31 </RelativeLayout>

arrays部分xml

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <resources>
 3    <string-array name="province">
 4         <item>-省份-</item>
 5         <item>北京市</item>
 6         <item>河北省</item>
 7     </string-array>
 8     <string-array name="hb">
 9         <item>-城市-</item>
10         <item>承德市</item>
11         <item>石家庄</item>
12         <item>邯郸市</item>
13         <item>邢台市</item>
14         <item>廊坊市</item>
15     </string-array>
16     <string-array name="bj">
17         <item>-城市-</item>
18         <item>海淀区</item>
19         <item>朝阳区</item>
20         <item>崇文区</item>
21         <item>昌平区</item>
22     </string-array>
23 </resources>            

Activity 部分

 1 package com.example.android_spinner;
 2
 3 import android.os.Bundle;
 4 import android.app.Activity;
 5 import android.view.Menu;
 6 import android.view.View;
 7 import android.widget.AdapterView;
 8 import android.widget.ArrayAdapter;
 9 import android.widget.Spinner;
10
11 public class MainActivity extends Activity {
12     // 声明组件
13     private Spinner sr1;
14     private Spinner sr2;
15
16     @Override
17     protected void onCreate(Bundle savedInstanceState) {
18         super.onCreate(savedInstanceState);
19         setContentView(R.layout.activity_main);
20         // 获取组件
21         sr1 = (Spinner) this.findViewById(R.id.spinner1);
22         sr2 = (Spinner) this.findViewById(R.id.spinner2);
23         // 添加String数组
24         String[] province = getResources().getStringArray(R.array.province);
25         ;
26         // 将数组配置器链接上预置的文件
27         // ArrayAdapter<CharSequence> aa = new ArrayAdapter<CharSequence>(this,
28         // android.R.layout.simple_spinner_item,province);
29
30         // 这样就可以直接获取xml中的数组了
31         ArrayAdapter<CharSequence> aa = ArrayAdapter.createFromResource(this,
32                 R.array.province, android.R.layout.simple_spinner_item);
33
34         // 设置下拉菜单的样式
35         aa.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
36         // 将数据绑定到spinner上
37         sr1.setAdapter(aa);
38
39         // 添加监听事件
40
41         sr1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
42
43             @Override
44             public void onItemSelected(AdapterView<?> arg0, View arg1,
45                     int arg2, long arg3) {
46                 // 得到事件中选中的值
47                 Spinner s = (Spinner) arg0;
48                 String pro = (String) s.getItemAtPosition(arg2);
49                 ArrayAdapter<CharSequence> cityAdapter = null;
50                 // 获取所在省含有哪些市(从资源数组文件中获取数据)
51                 if (pro.equals("河北省")) {
52
53                     cityAdapter = ArrayAdapter.createFromResource(
54                             MainActivity.this, R.array.hb,
55                             android.R.layout.simple_spinner_item);
56                 } else if (pro.equals("北京市")) {
57
58                     cityAdapter = ArrayAdapter.createFromResource(
59                             MainActivity.this, R.array.bj,
60                             android.R.layout.simple_spinner_item);
61                 }
62                 sr2.setAdapter(cityAdapter);
63             }
64
65             @Override
66             public void onNothingSelected(AdapterView<?> arg0) {
67                 // TODO Auto-generated method stub
68
69             }
70
71         });
72
73     }
74
75     @Override
76     public boolean onCreateOptionsMenu(Menu menu) {
77         // Inflate the menu; this adds items to the action bar if it is present.
78         getMenuInflater().inflate(R.menu.main, menu);
79         return true;
80     }
81
82 }

实现效果:

时间: 2024-10-25 16:04:25

Android练习——Spinner二级联动_城市选择的相关文章

android:省市二级联动下拉框

全国省市xml文件下载 xml布局文件: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_par

Ajax实现的城市二级联动二

上一篇联动一种只是城市用ajax请求获取并渲染,这里将省份也用ajax请求并渲染 1.HTML <select id="province"> <option>请选择</option> </select> <select id="city"> <option>请选择</option> </select> 2.JS /* * 省份信息和城市信息全部来源于服务器端 * * 第一

2016-07-05 JavaScript实现省份城市二级联动

简介:利用JavaScript实现省份城市二级联动 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta charset="UTF-8"><title>New Document </title><script language="JavaScript" type=&

用json文件实现城市的二级联动

第一次接触的二级联动是学习php的时候用ajax请求实现城市之间的二级联动; 后来项目接触到这中需求之后,发现我们的后台是Java(新手对Java的后台一窍不通); 所以就想到了用json的来实现,由于项目时间紧,任务重,根本不给我思考的机会(当时写了个json文件是报错的), 那么问题来了;该怎么办呢;突然灵机一动,用数组啊,一级将行政区写死在页面上,二级用change事件查找对应的县,区; 确实是实现了目的;但是代码的不清晰导致了很多问题; 今天有时间,回过头来,想了一会静静,然后就开始改代

份-城市,基于jQuery的AJAX二级联动,用Struts2整合AJAX【非数据库版】

package loaderman.provincecity; import java.io.IOException; import java.util.LinkedHashSet; import java.util.Set; import com.opensymphony.xwork2.ActionSupport; /** * 控制器 * @author AdminTC */ public class ProvinceCityAction extends ActionSupport{ priv

Extjs二级联动 Extjs combo 省 城市

Extjs二级联动 Extjs combox根据省查询城市 实现效果如上图所示, store层代码: 1 Ext.define("ExtApp.store.TeacherProvince",{ 2 extend:"Ext.data.Store", 3 fields:['provinceCode','provinceName'], 4 autoLoad:true, 5 proxy:{ 6 type:"ajax", 7 url : 'getProvi

android wheelview实现三级城市选择

很早之前看淘宝就有了ios那种的城市选择控件,当时也看到网友有分享,不过那个写的很烂,后来(大概是去年吧),我们公司有这么一个项目,当时用的还是网上比较流行的那个黑框的那个,感觉特别的丑,然后我在那个开源的wheelview的基础上做封装,用户只需要专心数据的组装即可,然后填充就行,其他的可以不必考虑. 先上下效果图 接下来说下我的思路:网络请求-数据返回-设置数据-数据填充控件 接下来直接按上面的流程直接上代码: 网络请求我用的本地的json数据 String address = Utils.

【Android开源库】美团等APP城市选择

CityPicker 现在使用比较多的类似美团等APP的城市选择界面. 2步即可实现,就是这么简单粗暴! Gif image APK 下载demo.apk体验. Install Gradle: compile 'com.zaaach:citypicker:1.1' or Maven: <dependency> <groupId>com.zaaach</groupId> <artifactId>citypicker</artifactId> <

联动城市选择插件

index.html <!DOCTYPE html><html lang="en"> <head>    <meta charset="UTF-8">    <title>kuCity</title>    <link rel="stylesheet" href="kuCity.css">    <style>    .search