LetterView实现载入全国各地城市

LetterView实现载入全国各地城市

近期更具eoe论坛上的letteView案例(   eoe)自己做了一个LetterView载入全国城市的案例,欢迎大家互相学习和交流,

相对于eoe那个案例稍微修改了一下,利用json存储全国城市数据,而且读取实现动态绑定。

   首先准备数据:数据格式例如以下:

<span>LetterView实现载入全国各地城市</span>

第二:读取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();//显示点击的项目名称

执行效果图:

<span>LetterView实现载入全国各地城市</span>

经过网友反映说,滑动后点击会奔溃报错,我回去看了下代码,修改了后发现这个问题能够解决:在MainActivity.java里面把

TextView tvname=(TextView)arg0.getChildAt(arg2).findViewById(R.id.name);//获取点击城市的名字

改为:TextView tvname=(TextView)arg1.findViewById(R.id.name);//获取点击城市的名字

就可以

另外本人从新改动了上传到CSDN下载,谢谢大家的支持

      本程序源代码,请移步:

              点击下载本程序源代码 


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/119040.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • vue框架中用于表单数据绑定的指令_jsp获取表单数据

    vue框架中用于表单数据绑定的指令_jsp获取表单数据v-modelv-model指定可以实现表单值与属性的双向绑定。即表单元素中更改了值会自动的更新属性中的值,属性中的值更新了会自动更新表单中的值绑定的属性和事件v-model在内部为不同的输入元

  • 在乌镇拼命“洗白”的拼多多

    在乌镇拼命“洗白”的拼多多“虽然我们没为别人拼过命,但是一定为别人拼过多多。“以往冬初的乌镇世界互联网大会,刘强东往往会穿着显腰瘦的西服出现,不过今年没出现,倒是友商拼多多的创始人黄峥,来了。黄峥…

  • axios上传文件以及遇到的问题

    axios上传文件以及遇到的问题axios上传文件以及遇到的问题1,这里上传文件使用的是elementUI的上传,也用原生的input上传写了,但是没有时间做多文件上传,下面会把代码贴出。2,这里上传文件我是先获取OSS权限和上传路径,然后再上传。但是权限获取成功后,上传到阿里云服务器时,OPTION请求报403。原因是项目中axios设置了拦截器,添加了config配置,但是在axios发送OPTION测试接口是否有权限访…

  • android 应用的证书签名跟系统签名

    android 应用的证书签名跟系统签名作为软件行业的从业者都知道,一款软件的开发过程中肯定会诞生两种版本,即debug版本和release版本,debug版本包含有调试信息,一般来说都要比release版本大,android应用当然也不例外1.证书签名并不是所有的apk文件都能成功安装到安卓设备上,android系统要求只有签名后的apk文件才可以安装,因此我们还要对生成的apk文件进行签名才行在androidstudio中直接运行项目生成的都是测试版debug安装文…

  • 实现带查询功能的Combox控件

    实现带查询功能的Combox控件

    2021年11月30日
  • mysql导入excel文件_将Excel数据导入MySQL「建议收藏」

    mysql导入excel文件_将Excel数据导入MySQL「建议收藏」去年的投资统计月报数据量庞大,原始表格是xls格式(还是EXECL2003的),单个sheet最大只能放几万行,但数据总量有10万行以上,于是只能存成两个sheet。EXECL2010格式倒是单个sheet可以放得下,可是居然不能将数据完整的从一个sheet复制粘贴到另一个sheet(可能是因为行数太多)。正好想学习一下execl数据导入MySQL数据库的方法,于是开始尝试。一开始使用的是MySQ…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号