zoukankan      html  css  js  c++  java
  • 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下载,谢谢大家的支持

          本程序源代码,请移步:

                  点击下载本程序源代码 

    
  • 相关阅读:
    TIDB-存储
    MySQL的ACID
    MySQL MVCC
    MySQL 悲观锁、乐观锁、MVCC一
    MySQL写放大总结
    基于Linux上的wifi密码爆破
    Stack与Queue的实现(c++模板实现)
    vector 实现二维数组
    Linux下的静态链接与动态链接
    260. Single Number III
  • 原文地址:https://www.cnblogs.com/yxwkf/p/3839860.html
Copyright © 2011-2022 走看看