LetterView实现载入全国各地城市
相对于eoe那个案例稍微修改了一下,利用json存储全国城市数据,而且读取实现动态绑定。
首先准备数据:数据格式例如以下:
第二:读取json数据,因为json数据较多我把数据写成了本地数据并实现读取,例如以下:
JSONObject jsonObject = new JSONObject(json);// //解析info数组,解析中括号括起来的内容就表示一个数组,使用JSONArray对象解析 JSONArray array = jsonObject.getJSONArray("City");for(int i = 0; i < array.length(); i++) {JSONObject item = array.getJSONObject(i);String strname="";String strIteam="";
String strkey = ""; for (int j = 0; j < strkeys.length; j++) { JSONArray arrayItem = item.getJSONArray(strkeys[j]); for(int count=0;count<arrayItem.length();count++){
TestData data=new TestData();
JSONObject jsonItem=arrayItem.getJSONObject(count);
strname=jsonItem.getString("name");
strkey=jsonItem.getString("key");
data.setName(strname);
//自行设置
data.setKey(strkey);
datas.add(data);
}
}
}
}
return datas;
以上是实现的大部分源代码,另外本人还进行了其它扩展,当中另一些功能属性能够设置:
假设要实现点击右边导航弹出悬浮框:LetterToast.getInstance(mContext).showToast(s);//弹出悬浮框显示你选的字母导航
假设要实现点击当中莫一项就提示你选择的城市(letterListView.setOnItemClickListener):
TextView tvname=(TextView)arg0.getChildAt(arg2).findViewById(R.id.name);//获取点击城市的文本框
Toast.makeText(MainActivity.this, tvname.getText(), Toast.LENGTH_SHORT).show();//显示点击的项目名称
执行效果图:
经过网友反映说,滑动后点击会奔溃报错,我回去看了下代码,修改了后发现这个问题能够解决:在MainActivity.java里面把
TextView tvname=(TextView)arg0.getChildAt(arg2).findViewById(R.id.name);//获取点击城市的名字
改为:TextView tvname=(TextView)arg1.findViewById(R.id.name);//获取点击城市的名字
就可以
另外本人从新改动了上传到CSDN下载,谢谢大家的支持
本程序源代码,请移步:
LetterView实现载入全国各地城市的更多相关文章
- 全国三级城市联动 js版
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 全国主要城市(电信)ip地址
全国主要城市(电信)ip地址 2011-09-08 16:17:18 标签:ip地址 全国主要城市(电信) 职场 休闲 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声 ...
- 全国各城市Uber客服联系方式(电话、邮箱、微博)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...
- Java处理文件小例子--获取全国所有城市的坐标
需求:前端展示数据,全国城市的坐标
- MSSQLServer——全国省份城市SQL语句
use hr create table dbo.province ( proID int primary key, proName ), keys ) ) ,'北京市','B'); ,'天津市','T ...
- python获取全国各个城市pm2.5、臭氧等空气质量
随着国家发展,中国很多城市的空气质量其实并不好,国家气象局会有实时统计,但是要去写爬虫爬取是十分麻烦的事情,并且官方网站也会做一些反爬虫措施,所以实现起来比较麻烦,最好的办法就是使用现成的免费接口,空 ...
- 全国省会城市路网以及POI 数据
- 全国城市三级联动 html+js
全国城市三级联动,没有css,所以屏幕的自适应必须自己想办法,手机端慎用(最好不要用,因为有些我也说不出的展示问题). html页面 <!DOCTYPE html> <html> ...
- js 全国城市3级联动
js /* * 全国三级城市联动 js版 */ function Dsy(){ this.Items = {}; } Dsy.prototype.add = function(id,iArray){ ...
随机推荐
- 【转】Android项目中编译 C的模块
原文网址:http://blog.csdn.net/Harrison_zhu/article/details/4057738 Android编译环境本身比较复杂,且不像普通的编译环境:只有顶层目录下才 ...
- ubuntu桌面右上角键盘图标不见解决方法
今天出现了这个问题,桌面右上角的键盘图标不见,找到解决方法如下: 打开终端,分别输入以下命令即可: killall ibus-daemon 这个表示结束进程 ibus-daemon -d 这个表示重启 ...
- NopCommerce架构分析之参考资料
http://www.cnblogs.com/RobbinHan/archive/2011/11/30/2269537.html 依赖注入框架Autofac的简单使用 http://www.cnblo ...
- java 垃圾回收(堆内存)、以及栈内存的释放
一.Java的垃圾回收机制———解疑 Java的垃圾回收机制是Java虚拟机提供的能力,用于在空闲时间以不定时的方式动态回收无任何引用的对象占据的内存空间. 需要注意的是:垃圾回收回收的是无任何引用的 ...
- UESTC 250 windy数(数位DP)
题意:题意:求区间[A,B]之间的,不含前导0,且相邻两数位之间相差至少为2的正整数有多少个. 分析:dp[i][j]表示,长度为i.以j为结尾的表示的个数,再加一个前导0判断即可 #include ...
- Failed to lunch test error when run with Appium (已解决)
[2015-08-10 15:09:07 - androidtest1] Performing android.test.InstrumentationTestRunner JUnit launch[ ...
- Appium原理
Appium原理小结 Api接口调用selenium的接口,android底层用android的instrumentation(API2.3+ 通过绑定另外一个独立的selendroid项目来实现的) ...
- Java HashMap存储问题
public static boolean isIsomorphic(String s, String t) { Map map1 = new HashMap<>(); Map map2 ...
- FZU 2125 简单的等式
Problem Description 现在有一个等式如下:x^2+s(x,m)x-n=0.其中s(x,m)表示把x写成m进制时,每个位数相加的和.现在,在给定n,m的情况下,求出满足等式的最小的正整 ...
- SQL Server 2005如何远程连接数据库?
SQL Server 2005如何远程连接数据库? 方法/步骤 1 在配置工具中的服务和远程连接的外围应用配置器 --->远程连接-->本地连接和远程连接-->同时使用TCP/I ...