`
he91_com
  • 浏览: 401067 次
文章分类
社区版块
存档分类
最新评论

关于android中spinner级联问题

 
阅读更多

通常我们查询的范围比较大时都习惯联查,而有时我们在输入的时候为了方便采用级联,这样我们输入的内容仅仅靠选择就行了。

比如查询某地的相关信息我们需输入省市县(这里只设置了省和市),如图:


问题来了,不知哪里出错,不仅省和市连不上,市里面的选择内容都没了,无奈……

大家帮忙看看代码哪里有问题:

public class MarketActivity extends Activity {
	Spinner spinnerprovince;
	Spinner spinnercity;
	protected String provinceValue;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_market);
		// 初始化控件
		spinnerprovince = (Spinner) findViewById(R.id.province);
		spinnercity = (Spinner) findViewById(R.id.city);
		// 适配器
		ArrayAdapter<CharSequence> _Adapter = ArrayAdapter.createFromResource(
				this, R.array.spinnerprovince,
				android.R.layout.simple_spinner_item);

		// 数据绑定到适配器
		_Adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

		spinnerprovince.setAdapter(_Adapter);

		spinnerprovince
				.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

					@Override
					public void onItemSelected(AdapterView<?> arg0, View arg1,
							int arg2, long arg3) {

						provinceValue = (String) spinnerprovince
								.getItemAtPosition(arg2);
						updataSpinner(provinceValue);
					}

					@Override
					public void onNothingSelected(AdapterView<?> arg0) {

						spinnerprovince.setSelection(0);
					}

				});
		spinnercity
				.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

					@Override
					public void onItemSelected(AdapterView<?> arg0, View arg1,
							int arg2, long arg3) {

					}

					@Override
					public void onNothingSelected(AdapterView<?> arg0) {

						spinnercity.setSelection(0);
					}
				});

	}

	private void updataSpinner(String provinceValue) {
		if (spinnerprovince.equals("山东省")) {
			ArrayAdapter<CharSequence> _bAdapter = ArrayAdapter
					.createFromResource(this, R.array.cityofshandong,
							android.R.layout.simple_spinner_item);
			_bAdapter
					.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
			spinnercity.setAdapter(_bAdapter);
		}
		if (spinnerprovince.equals("山西省")) {
			ArrayAdapter<CharSequence> _cAdapter = ArrayAdapter
					.createFromResource(this, R.array.cityofshanxi,
							android.R.layout.simple_spinner_item);
			_cAdapter
					.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
			spinnercity.setAdapter(_cAdapter);
		}
	}

	public void onNothingSelected(AdapterView<?> arg0) {

	}
}

其他数据都写在xml里了,也不会出错啊?

xml:

<resources>

    <string-array name="spinnerprovince">
        <item>山东省</item>
        <item>山西省</item>
        <item>安徽省</item>
        <item>河北省</item>
        <item>陕西省</item>
        <item>湖南省</item>
    </string-array>
    <string-array name="cityofshandong">
        <item>临沂市</item>
        <item>济南市</item>
        <item>济宁市</item>
        <item>潍坊市</item>
        <item >青岛市</item>
        <item >淄博市</item>
        <item >枣庄市</item>
        <item >烟台市</item>
        <item >泰安市</item>
        <item >威海市</item>
        <item >日照市</item>
        <item >滨州市</item>
        <item >德州市</item>
        <item >聊城市</item>
        <item >菏泽市</item>
        <item >莱芜市</item>
        <item >东营市</item>
      
    </string-array>
    <string-array name="cityofshanxi">
        <item >太原市</item>
        <item >古交市</item>
        <item >潞城市</item>
        <item >高平市</item>
        <item >介休市</item>
        <item >河津市</item>
        <item >忻州市</item>
        <item >原平市</item>
        <item >临汾市</item>
        <item >吕梁市</item>
        <item >孝义市</item>
        <item >汾阳市</item>
    </string-array>

</resources>

我想选中山东省的时候取cityofshandong里的数据,选中山西省的时候取cityofshanxi里面的数据。可是都没有抓狂大家快来帮忙啊
分享到:
评论

相关推荐

    Android城市级联下拉框(自定义Spinner)

    在Android开发中,有时我们需要实现一个城市级联选择的功能,比如选择省份后,根据省份自动更新市、区的选项。这种效果通常通过自定义Spinner来完成。Spinner是Android中的一个下拉选择控件,它提供了用户友好的交互...

    Android仿苹果级联菜单

    在Android中,实现级联菜单需要创建一个自定义View,这个View可以是一个组合控件,包含多个ListView或者Spinner,每个控件代表级联菜单的一级。"PickViewDemo"项目可能就包含这样一个自定义View,用于展示多级选择...

    Android使用Spinner实现城市级联下拉框

    总之,Android中的城市级联下拉框是通过组合多个Spinner,并在用户交互时动态更新数据适配器来实现的。这种设计允许用户逐步选择地理位置,简化了输入操作,提高了应用的易用性。通过理解和掌握这种实现方式,开发者...

    android Spinner+sqlite 三级联动

    1. **Spinner**:是Android中用于显示下拉列表的一个控件。用户可以通过点击Spinner来显示一个包含多个选项的列表,并从中选择一项。 2. **SQLite**:是一个轻量级的关系型数据库管理系统,非常适合移动设备。它可以...

    android sqlite绑定城市三级联包含三级城市级联mysql数据源,sql语句

    - Spinner级联:通过监听Spinner的选中事件,根据用户选择更新下一个Spinner的数据源,实现级联效果。 5. MySQL数据源: - 远程数据同步:虽然SQLite主要用于本地数据存储,但也可以通过网络请求同步MySQL数据库...

    推荐2款Android安卓APP 三级联动的选择控件.zip

    在Android中,可以使用`onItemSelectedListener`监听用户的选择,并在监听器回调中更新后续级联的列表。数据绑定框架,如Android Data Binding或Jetpack Compose,可以帮助简化这一过程,将数据与视图直接关联,使...

    Android实现省市区三级联动效果 Spinner

    Spinner是Android中的一个下拉选择控件,它可以展示一个下拉菜单供用户选择,非常适合用来构建这种联动效果。 首先,我们需要理解Spinner的基本用法。Spinner有三种使用方式:直接在布局文件中声明、通过代码动态...

    安卓Android源码——级联菜单,两级菜单自定义实现提供多种方式PopWindow,Fragment引用..zip

    在安卓中,我们可以通过组合ListView、Spinner等控件来实现级联菜单。在这个源码中,开发者可能使用了自定义Adapter和布局管理器来构建这种多级联动的效果,使菜单项能够根据用户的操作动态加载和展示子菜单。 ...

    android城市级联切换的例子

    在Android开发中,城市级联切换通常涉及到地理位置信息的层级展示,例如省份、城市、区县等多级选择。这个例子展示了如何通过自定义控件实现这一功能,为用户提供流畅的交互体验。以下是对这个主题的详细解释: 1. ...

    Android应用源码之级联菜单自定义实现提供多种方式PopWindow,Fragment引用.zip

    在Android中,我们可以使用Spinner控件来实现简单的级联菜单,但要实现更复杂的效果,如多级展开、自定义样式等,通常需要自定义组件。 在这个源码中,开发者可能会学习到如何使用`PopupWindow`来实现级联菜单。`...

    实现区域级联选择效果(级联菜单)

    在Android开发中,实现区域级联选择效果,通常是指创建一个类似于下拉菜单的效果,其中一项选择会引发下一级别的选项出现,这种交互设计被称为级联菜单或联动菜单。这样的功能常见于地理位置选择,例如省份-城市-...

    Android高级应用源码-自己做的安卓开发关于两个spinner联动的实例.zip

    在Android高级应用中,我们经常会遇到更复杂的场景,例如两个Spinner之间的联动效果,这种效果通常被称为"级联选择"或"联动下拉菜单"。这个实例就是专门针对这种情况的一个源码实现。 首先,我们需要理解Spinner的...

    Android版省市区三级级联

    在Android开发中,"省市区三级级联"是一种常见的需求,尤其在地址选择、定位服务等场景中。这个"Android版省市区三级级联"应该是一个实现中国省份、城市、区县选择功能的代码库或者组件,允许用户通过级联的方式进行...

    仿美团网团购搜索级联下拉框DEMO

    本DEMO——“仿美团网团购搜索级联下拉框”专注于提供一个类似美团网的多级选择搜索功能,这在Android应用开发中是一项常见的需求。这个DEMO通过实现级联下拉框,为用户提供了更高效、更直观的筛选和查找服务。 1. ...

    spinner多级联动

    在Android开发中,Spinner是一个常用的UI组件,它用于在下拉菜单中展示一系列选项供用户选择。当涉及“多级联动”时,这意味着一个Spinner的选择会动态地影响另一个或多个Spinner的显示内容,形成一种级联的效果。...

    Android仿iOS实现三级联动选择器

    在Android开发中,为了提供与iOS类似的用户体验,有时我们需要实现多级联动选择器,例如一个城市选择器,可能包括省份、城市和区县三个级别。本文将深入探讨如何在Android中仿照iOS实现一个三级联动选择器,以及如何...

    安卓--级联下拉列表实现DEMO

    在Android中,我们可以使用Spinner控件来创建单个下拉列表,通过组合多个Spinner并设置相应的监听器,可以实现级联效果。 1. **Spinner控件**:Spinner是Android SDK中提供的一种基础UI组件,它允许用户在预定义的...

Global site tag (gtag.js) - Google Analytics