先看例子演示:
部分代码:
package mm.shandong.com.testthreeregion;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import mm.shandong.com.testthreeregion.adapter.FirstSearchAreaAdapter;
import mm.shandong.com.testthreeregion.adapter.SecondSearchAreaAdapter;
import mm.shandong.com.testthreeregion.adapter.ThirdSearchAreaAdapter;
public class TestThreeRegionActivity extends AppCompatActivity {
ListView listView1;
ListView listView2;
ListView listView3;
FirstSearchAreaAdapter firstSearchAreaAdapter;
SecondSearchAreaAdapter secondSearchAreaAdapter;
ThirdSearchAreaAdapter thirdSearchAreaAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test_three_region);
listView1 = (ListView) findViewById(R.id.listView1);
listView2 = (ListView) findViewById(R.id.listView2);
listView3 = (ListView) findViewById(R.id.listView3);
initFirstListView();
}
//初始化第一个ListView
public void initFirstListView() {
firstSearchAreaAdapter = new FirstSearchAreaAdapter(this, Constant.firstNameArray);
firstSearchAreaAdapter.selectPosition = 0;
listView1.setAdapter(firstSearchAreaAdapter);
listView1.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view,
int position, long l) {
if (firstSearchAreaAdapter.selectPosition != position) {
updateFirstListView(position);
}
}
});
initSecondListView(0);
}
//初始化第二个ListView
public void initSecondListView(int position) {
secondSearchAreaAdapter = new SecondSearchAreaAdapter(this,
Constant.secondNameArray[position]);
secondSearchAreaAdapter.selectPosition = 0;
listView2.setAdapter(secondSearchAreaAdapter);
listView2.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView,
View view, int position, long l) {
if (secondSearchAreaAdapter.selectPosition != position) {
updateSecondListView(position);
}
}
});
initThirdListView(0);
}
//初始化第三个ListView
public void initThirdListView(int position) {
///如果第一个listView选择的是地铁,那么第三个listView就显示出来,否则就隐藏
if ("地铁".equals(firstSearchAreaAdapter.
getItem(firstSearchAreaAdapter.selectPosition))) {
thirdSearchAreaAdapter =
new ThirdSearchAreaAdapter(this, Constant.thirdNameArray[position]);
thirdSearchAreaAdapter.selectPosition = 0;
listView3.setAdapter(thirdSearchAreaAdapter);
} else {
listView3.setVisibility(View.GONE);
}
}
public void updateFirstListView(int position) {
firstSearchAreaAdapter.selectPosition = position;
firstSearchAreaAdapter.notifyDataSetChanged();
secondSearchAreaAdapter.setDatas(Constant.secondNameArray[position]);
updateSecondListView(0);
}
public void updateSecondListView(int position) {
secondSearchAreaAdapter.selectPosition = position;
secondSearchAreaAdapter.notifyDataSetChanged();
if ("地铁".equals(firstSearchAreaAdapter.
getItem(firstSearchAreaAdapter.selectPosition))) {
if (thirdSearchAreaAdapter == null) {
thirdSearchAreaAdapter =
new ThirdSearchAreaAdapter(this, Constant.thirdNameArray[position]);
// thirdSearchAreaAdapter.selectPosition=0;
listView3.setAdapter(thirdSearchAreaAdapter);
} else {
thirdSearchAreaAdapter.setDatas(Constant.thirdNameArray[position]);
updateThirdListView(0);
}
listView3.setVisibility(View.VISIBLE);
} else {
listView3.setVisibility(View.GONE);
}
}
public void updateThirdListView(int position) {
// thirdSearchAreaAdapter.selectPosition=position;
thirdSearchAreaAdapter.notifyDataSetChanged();
}
}
Demo下载
最后,以上例子都来源与安卓无忧,请去应用宝或者豌豆荚下载:http://android.myapp.com/myapp/detail.htm?apkName=com.shandong.mm.androidstudy,源码例子文档一网打尽。
分享到:
相关推荐
当涉及到“三级联动”效果时,我们通常指的是在ListView中嵌套多个级别的选择器,例如第一级选择后会影响第二级的显示,第二级选择后再影响第三级的显示,以此类推。这种设计常见于导航菜单、地区选择或者商品分类等...
本文将深入探讨如何使用ListView来实现一个三级联动的地址选择器,类似于iOS中的PickerView或滚轮视图(wheelView)效果。 首先,我们需要准备三级数据,即省份、城市和区县的数据。这些数据通常以JSON格式存储,每...
在Android开发中,实现类似京东、美团这样的三级联动菜单是一项挑战性的任务,它涉及到复杂的UI交互和数据层次结构的管理。这个项目通过双ListView成功地实现了这一功能,并且具有90%的相似度,这对于开发者来说是一...
在“Node.js-一二三四级联动ListView联动城市选择联动”项目中,我们主要关注的是如何在Android应用中实现多级联动的城市选择功能,这涉及到ListView的联动效果、数据处理以及可能用到的SQLite轻量级数据库。...
在Android开发中,"三级联动省市联动多级联动"是一种常见的功能需求,特别是在涉及地理位置选择、数据筛选或者信息填写的场景。这个经典demo是针对这种需求的一个实例展示,旨在帮助开发者理解和实现这样的交互效果...
在Android开发中,"三级联动省市联动多级联动"是一种常见的功能,常见于地图应用、电商网站、生活服务类APP等,例如美团和58同城。这个功能涉及到多个选择项的联动更新,用户首先选择省份,接着根据省份选择城市,...
此项目“安卓三级联动省市联动多级联动相关-仿美团弹出分类选择框左右两个listview联动.rar”显然是一个示例应用,模仿了美团App中的弹出分类选择框,其特点在于利用了两个ListView实现左右联动的效果。 首先,我们...
在Android开发中,三级联动选择器是一种常见的交互组件,尤其在处理地理位置选择或者分类筛选时十分常见。这个组件模拟了淘宝手机客户端收货地址的选择流程,让用户能够通过连续的下拉菜单来选取省、市、区(县)三...
在Android开发中,"三级联动省市联动多级联动"是一个常见的需求,特别是在涉及到地理位置选择、地址输入或服务定位等场景。这个技术主要涉及到用户界面(UI)设计、数据管理以及事件处理等方面。在这个项目中,...
"三级联动"是指在用户界面中,当用户在一个级别上做出选择时,下一个级别的选项会根据前一级的选择动态更新。这种设计常见于地区选择、商品分类等场景,比如省市县的三级联动选择。而"二级联动"则是类似的概念,但只...
在Android开发中,"滑动三级联动"是一种常见的交互设计,尤其在地址选择、筛选条件等场景中应用广泛。这种设计通常涉及到多个列表视图的联动,用户在每一级选择一个选项后,下一级的选择范围会根据上一级的选中结果...
在Android应用开发中,"三级联动"是一种常见的交互设计,特别是在数据选择或者过滤场景下,如省市区选择、商品分类筛选等。这个"三级联动demo"是基于Android Studio的一个项目实例,它展示了如何实现三个层次的数据...
在Android开发中,"三级联动省市联动多级联动"是一种常见的功能需求,特别是在涉及地理位置选择、分类筛选等场景。这个压缩包"安卓三级联动省市联动多级联动相关-Android竖直滑动选择器三级联动二级联动.rar"包含了...
在Android开发中,城市三级联动是一种常见的功能,用于在用户选择城市时提供省-市-区的逐级筛选。这个功能通常用在地址输入、物流配送等场景,它需要一个高效的UI交互和数据管理机制。下面我们将深入探讨如何实现这...
在Android开发中,"省市区三级联动Demo"是一种常见的需求,尤其在地址选择、信息填写等场景中。这个项目提供了一个实现三级联动效果的实例,包括使用Fragment和Pop两种方式,方便开发者理解和应用。 首先,我们要...
在Android开发中,"地址三级联动"是一种常见的功能,它涉及到省、市、区三个级别的地址选择,并且这三个级别通常是相互关联的。当用户选择一个省份时,对应的市列表会自动更新;同样,选择一个市后,对应的区列表也...
在Android开发中,"三级联动"是一个常见的需求,特别是在处理涉及地理位置信息的用户界面时,如地址选择。这个"安卓三级联动省市联动多级联动"的压缩包文件提供了一个实现省市区三级联动选择的示例。下面将详细介绍...
在Android开发中,"三级联动省市联动多级联动"是一种常见的功能需求,特别是在电商应用中,用户需要选择收货地址时。此功能涉及到省、市、区(县)的逐级选择,每级的选择结果会影响到下一级的选择项。在本案例中,...
在Android开发中,"三级联动"是一个常见的功能需求,尤其在地址选择、分类筛选等场景中。本示例"安卓省市区三级联动demo"提供了一个完整的解决方案,帮助开发者实现一个流畅且高效的地区选择器。下面将详细介绍这个...
在安卓开发中,"三级联动省市联动多级联动"是一种常见的功能设计,特别是在涉及地理位置选择的应用中,如美团等生活服务类应用。这个概念是指在用户界面中,通过三个级别(省、市、区/县)的选择器进行联动,用户在...