LetterView实现加载全国各地城市

最近更具eoe论坛上的letteView案例(   eoe)自己做了一个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下载,谢谢大家的支持

      本程序源码,请移步:

              点击下载本程序源码 


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值