1.确定我需要的数据放到res/values/arrays.xml文件(定义数组)
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="province">
<item>-省份-</item>
<item>河北省</item>
<item>山西省</item>
<item>北京市</item>
</string-array>
<string-array name="hb">
<item>-城市-</item>
<item>承德市</item>
<item>邯郸市</item>
<item>廊坊市</item>
</string-array>
<string-array name="bj">
<item>-城市-</item>
<item>海淀区</item>
<item>朝阳区</item>
<item>崇文区</item>
</string-array>
<string-array name="shx">
<item>-城市-</item>
<item>大同市</item>
<item>临汾市</item>
</string-array>
</resources>
2.编写xml界面res/values/main.xml文件(编写界面)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/textView"
/>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<Spinner
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/province"
/>
<Spinner
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/province"
android:id="@+id/city"
/>
</RelativeLayout>
</LinearLayout>
3.在Activity中实现省市联动功能
/**
* 通过Spinner实现省市(两级)联动
* @author 黑色天空
*/
public class MainActivity extends Activity {
private TextView textView ;
private Spinner province;
private Spinner city;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//String[] provinces = new String[]{"-省份-","河北省","山西省","北京"};
textView = (TextView)this.findViewById(R.id.textView);
province = (Spinner)this.findViewById(R.id.province);
city = (Spinner)this.findViewById(R.id.city);
//(处理省的显示)
//将可选内容与ArrayAdapter的连接(从资源数组文件中获取数据)
ArrayAdapter<CharSequence> adapter =
ArrayAdapter.createFromResource(this, R.array.province, android.R.layout.simple_spinner_item);
//new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, provinces);
//设置下拉列表的风格
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
//将数据绑定到Spinner视图上
province.setAdapter(adapter);
//添加条目被选中监听器
province.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view,int position, long id) {
//parent既是province对象
Spinner spinner = (Spinner)parent;
String pro = (String)spinner.getItemAtPosition(position);
//(处理省的市的显示)
//将默认值与ArrayAdapter连接(从资源数组文件中获取数据)
ArrayAdapter<CharSequence> cityAdapter = ArrayAdapter.createFromResource
(MainActivity.this, R.array.citydefault, android.R.layout.simple_spinner_item);
//new ArrayAdapter<CharSequence>
// (MainActivity.this,android.R.layout.simple_spinner_item, cities);
//获取所在省含有哪些市(从资源数组文件中获取数据)
if(pro.equals("河北省")){
cityAdapter = ArrayAdapter.createFromResource
(MainActivity.this, R.array.hb, android.R.layout.simple_spinner_item);
}else if(pro.equals("北京市")){
cityAdapter = ArrayAdapter.createFromResource
(MainActivity.this, R.array.bj, android.R.layout.simple_spinner_item);
}else if(pro.equals("山西省")){
cityAdapter = ArrayAdapter.createFromResource
(MainActivity.this, R.array.shx, android.R.layout.simple_spinner_item);
}
//绑定数据到Spinner(City)上
city.setAdapter(cityAdapter);
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
}
}
注:博客涉及的源码请在千寻资源库:www.qxzyk.com 下载获取,谢谢支持。
分享到:
相关推荐
本示例主要讲解如何利用Spinner实现省市二级联动的功能,这是一个在许多应用中都需要用到的功能,如地址填写、定位服务等。下面将详细介绍这个过程。 首先,我们需要明白什么是二级联动。二级联动是指在一个选择框...
我是一个android新手,所以一切以简单起步。...如果您正在学习这个控件,需要实现基于这个控件的二级联动效果,不妨使用这个看看. 使用方法:用eclipse导入,假若报错,把平台改为android2.2,jdk1.6就可以了。
"Spinner二级联动下拉菜单"是一个更复杂的功能,它涉及到两个Spinner,一个选择省份,另一个根据省份的选择动态加载并显示对应的城市。这个功能的实现涉及到多个知识点,下面将逐一详细讲解。 1. **Spinner基本使用...
总的来说,实现Android的省市二级联动涉及数据结构设计、UI布局、适配器、网络请求、生命周期管理等多个方面,需要综合运用Android开发的多种技术。在实际项目中,可以根据具体需求进行定制化设计,优化用户体验。
这个"Android 省市二级联动.rar"压缩包很可能包含了一个实现此功能的示例项目,帮助开发者理解如何在自己的应用中实现类似的功能。 首先,省市二级联动的核心在于数据结构的设计。通常,我们会使用树形结构来存储...
在本案例中,我们讨论的是一个实现“省市二级联动”的功能,即用户首先选择省份,然后根据所选省份显示出相应的城市供用户进一步选择。例如,用户可能会看到“四川省-成都市”或“重庆市-渝中区”这样的选项。 要...
2. 滑动冲突:如果三级联动使用`EditText`,在展示下级列表时需要处理滑动冲突,确保用户在选择时不会误触发其他`EditText`的焦点改变。 3. 选中反馈:用户在列表中选择一项后,需要更新对应`EditText`的文本内容,...
spProvince = (Spinner)findViewById(R.id.spAddMettingAddressProvince); spCity = (Spinner)findViewById(R.id.spAddMettingAddressCity); ArrayAdapter<CharSequence> aAdapter = ArrayAdapter....
5. 二级联动:当第二个Spinner的选中事件触发时,重复上述过程,更新第三个Spinner。 6. 注释:为了方便初学者理解,代码中应包含详细注释,解释每一步的作用和实现原理。 在“SpinnerDemo”这个项目中,你可以...
"省市二级spinner"是一个特定的应用场景,它用于展示中国的省市区两级联动的选择效果,常见于地址输入或区域筛选等场景。这个项目非常适合初学者学习,因为它涉及到基础的Android组件使用、数据处理以及用户交互。 ...
这个压缩包"安卓三级联动省市联动多级联动相关-Android竖直滑动选择器三级联动二级联动.rar"包含了实现这一功能的相关代码资源。下面将详细解释这个功能的实现原理及关键知识点。 1. **联动选择器**: 联动选择器...
总的来说,实现安卓应用中的三级联动省市联动多级联动,需要理解spinner组件的工作原理,以及如何处理数据和响应用户操作。通过对给定的源码进行学习和参考,开发者可以掌握这一技能并应用到实际项目中。
实现二级联动的关键在于数据结构的设计和UI组件的正确使用。首先,我们需要一个包含全国所有省份和城市的数据源。这个数据源可以是静态的JSON文件,也可以是从服务器动态获取。每个省都有一个或多个城市与其关联,...
总结,实现Android省市区三级联动需要对数据结构有清晰的理解,掌握UI组件的使用,尤其是Spinner,以及熟悉数据加载和事件监听机制。此外,优化用户体验和处理异常情况也是必不可少的。通过这个功能的实现,开发者...
在Android开发中,为了实现与iPhone类似的用户界面和交互体验,开发者经常需要创建省市二级联动的效果,这在很多应用中都是常见的功能,如地址选择、配送设置等。本知识点主要聚焦于如何在Android平台上实现一个具有...
在Android开发中,省市两级联动滚动通常用于地址选择器或者搜索定位等功能,用户可以在第一级选择省份,然后根据选择的省份在第二级显示对应的市。这个"Android省市两级联动滚动Demo"是一个典型的实现示例,它展示了...
这个压缩包“Android 省市区三级连动--spinner.rar”显然包含了关于如何在Android应用中使用Spinner控件实现这一功能的资源。 Spinner是Android提供的一个下拉选择控件,常用于实现用户在有限选项中进行选择的操作。...
压缩包中的"spinner省市二级联动"可能包含了一个完整的示例项目,包括了布局文件、数据源、以及相关的Java代码。通过阅读和分析这些文件,你可以更深入地了解如何在实际开发中应用这种联动机制。