通常我们查询的范围比较大时都习惯联查,而有时我们在输入的时候为了方便采用级联,这样我们输入的内容仅仅靠选择就行了。
比如查询某地的相关信息我们需输入省市县(这里只设置了省和市),如图:
问题来了,不知哪里出错,不仅省和市连不上,市里面的选择内容都没了,无奈……
大家帮忙看看代码哪里有问题:
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来完成。Spinner是Android中的一个下拉选择控件,它提供了用户友好的交互...
在Android中,实现级联菜单需要创建一个自定义View,这个View可以是一个组合控件,包含多个ListView或者Spinner,每个控件代表级联菜单的一级。"PickViewDemo"项目可能就包含这样一个自定义View,用于展示多级选择...
总之,Android中的城市级联下拉框是通过组合多个Spinner,并在用户交互时动态更新数据适配器来实现的。这种设计允许用户逐步选择地理位置,简化了输入操作,提高了应用的易用性。通过理解和掌握这种实现方式,开发者...
1. **Spinner**:是Android中用于显示下拉列表的一个控件。用户可以通过点击Spinner来显示一个包含多个选项的列表,并从中选择一项。 2. **SQLite**:是一个轻量级的关系型数据库管理系统,非常适合移动设备。它可以...
- Spinner级联:通过监听Spinner的选中事件,根据用户选择更新下一个Spinner的数据源,实现级联效果。 5. MySQL数据源: - 远程数据同步:虽然SQLite主要用于本地数据存储,但也可以通过网络请求同步MySQL数据库...
在Android中,可以使用`onItemSelectedListener`监听用户的选择,并在监听器回调中更新后续级联的列表。数据绑定框架,如Android Data Binding或Jetpack Compose,可以帮助简化这一过程,将数据与视图直接关联,使...
Spinner是Android中的一个下拉选择控件,它可以展示一个下拉菜单供用户选择,非常适合用来构建这种联动效果。 首先,我们需要理解Spinner的基本用法。Spinner有三种使用方式:直接在布局文件中声明、通过代码动态...
在安卓中,我们可以通过组合ListView、Spinner等控件来实现级联菜单。在这个源码中,开发者可能使用了自定义Adapter和布局管理器来构建这种多级联动的效果,使菜单项能够根据用户的操作动态加载和展示子菜单。 ...
在Android开发中,城市级联切换通常涉及到地理位置信息的层级展示,例如省份、城市、区县等多级选择。这个例子展示了如何通过自定义控件实现这一功能,为用户提供流畅的交互体验。以下是对这个主题的详细解释: 1. ...
在Android中,我们可以使用Spinner控件来实现简单的级联菜单,但要实现更复杂的效果,如多级展开、自定义样式等,通常需要自定义组件。 在这个源码中,开发者可能会学习到如何使用`PopupWindow`来实现级联菜单。`...
在Android开发中,实现区域级联选择效果,通常是指创建一个类似于下拉菜单的效果,其中一项选择会引发下一级别的选项出现,这种交互设计被称为级联菜单或联动菜单。这样的功能常见于地理位置选择,例如省份-城市-...
在Android高级应用中,我们经常会遇到更复杂的场景,例如两个Spinner之间的联动效果,这种效果通常被称为"级联选择"或"联动下拉菜单"。这个实例就是专门针对这种情况的一个源码实现。 首先,我们需要理解Spinner的...
在Android开发中,"省市区三级级联"是一种常见的需求,尤其在地址选择、定位服务等场景中。这个"Android版省市区三级级联"应该是一个实现中国省份、城市、区县选择功能的代码库或者组件,允许用户通过级联的方式进行...
本DEMO——“仿美团网团购搜索级联下拉框”专注于提供一个类似美团网的多级选择搜索功能,这在Android应用开发中是一项常见的需求。这个DEMO通过实现级联下拉框,为用户提供了更高效、更直观的筛选和查找服务。 1. ...
在Android开发中,Spinner是一个常用的UI组件,它用于在下拉菜单中展示一系列选项供用户选择。当涉及“多级联动”时,这意味着一个Spinner的选择会动态地影响另一个或多个Spinner的显示内容,形成一种级联的效果。...
在Android开发中,为了提供与iOS类似的用户体验,有时我们需要实现多级联动选择器,例如一个城市选择器,可能包括省份、城市和区县三个级别。本文将深入探讨如何在Android中仿照iOS实现一个三级联动选择器,以及如何...
在Android中,我们可以使用Spinner控件来创建单个下拉列表,通过组合多个Spinner并设置相应的监听器,可以实现级联效果。 1. **Spinner控件**:Spinner是Android SDK中提供的一种基础UI组件,它允许用户在预定义的...