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下载,谢谢大家的支持

      本程序源代码,请移步:

              点击下载本程序源代码 


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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java getclassloader_Java Class getClassLoader()方法[通俗易懂]

    java getclassloader_Java Class getClassLoader()方法[通俗易懂]JavaClassgetClassLoader()方法java.lang.Class.getClassLoader()方法返回的类加载器的类。一些实现可能使用null表示引导类加载器。如果这个类是由引导类加载器加载的方法在这样的实现将返回null。1语法publicClassLoadergetClassLoader()2参数无3返回值此方法返回加载此对象所表示的类或接口的类加载器。…

    2022年6月11日
    36
  • idea的mybatis插件不联网可以使用吗_idea特效插件

    idea的mybatis插件不联网可以使用吗_idea特效插件IDEA的Mybatis插件idea不支持xml和映射器接口之间的跳转安装插件:FreeMybatisplugin使用指路:https://www.jianshu.com/p/4f1c2600802c

    2022年10月7日
    2
  • 进程间的7种通信方式_linux 进程间通信

    进程间的7种通信方式_linux 进程间通信1无名管道通信无名管道(pipe):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。2高级管道通信高级管道(popen):将另一个程序当做一个新的进程在当前程序进程中启动,则它算是当前程序的子进程,这种方式我们成为高级管道方式。3有名管道通信有名管道(namedpipe):有名管道也是半双工的通信方式,但是它允许

    2022年10月11日
    2
  • Vim设置换行缩进[通俗易懂]

    Vim设置换行缩进[通俗易懂]vi~/.vimrcsetts=4setexpandtabsetautoindent

    2022年9月30日
    5
  • spring classutils_beanpropertybindingresult

    spring classutils_beanpropertybindingresult一、简介:  BeanUtils提供对Java反射和自省API的包装。其主要目的是利用反射机制对JavaBean的属性进行处理。我们知道,一个JavaBean通常包含了大量的属性,很多情况下,对JavaBean的处理导致大量get/set代码堆积,增加了代码长度和阅读代码的难度。二、用法:  BeanUtils是这个包里比较常用的一个工具类,这里只介绍它的copyProperties(………

    2025年9月2日
    4
  • android控件大全及用法_学双人舞一步一步教学

    android控件大全及用法_学双人舞一步一步教学GridView用于显示二维滚动网格的View。同ListView一样,他的数据项也是从ListAdapter中产生。关于他的使用方法可参见官网的示例GridView 。下面先了解下GridView中常用到的属性:1、android:numColumn:指定GridView的列数,如果指定为auto_fit,则可能根据控件的大小自动调整每行显示的列数。2、android:st

    2025年5月22日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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