RecyclerView是一个比Listview强大的组件,RecyclerView显示数据时可横竖向,RecyclerView提供了3中显示效果样式LinearLayoutManager线性布局效果,GridLayoutManager(网格布局效果)和StaggeredGridLayoutManager(瀑布流布局效果).

运行效果图:

json数据:

[{"title": "活着"},{"title": "每天站在高楼上"},{"title": "看着地上的小蚂蚁"},{"title": "它们的头很大"},{"title": "它们的腿很细"},{"title": "它们拿着苹果手机"},{"title": "它们穿着耐克阿迪"},{"title": "上班就要迟到了"},{"title": "它们很着急"},{"title": "我那可怜的吉普车"},{"title": "很久没爬山也没过河"},{"title": "它在这个城市里"},{"title": "过得很压抑"},{"title": "虽然它什么都没说"},{"title": "但我知道它很难过"}
,{"title": "......"}
]

1、导入组件库 recyclerview和okhttp

2、activity_main.xml中添加控件

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context="com.wdl.recyclerview.MainActivity"><android.support.v7.widget.RecyclerViewandroid:id="@+id/recy"android:layout_width="match_parent"android:layout_height="match_parent"/>
</RelativeLayout>

3、创建recyclerview的item布局   recyclerview_item.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"><TextViewandroid:gravity="center"android:layout_width="match_parent"android:layout_height="100dp"android:id="@+id/recy_item"/>
</RelativeLayout>

4、Mainactivity.java

public class MainActivity extends AppCompatActivity {//获取的json数据public  String date;public  String title;public RecyclerView recyclerview;public List<Map<String,Object>> list=new ArrayList<>();@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);recyclerview= (RecyclerView) findViewById(R.id.recy);//获取数据okhttpDate();}private void okhttpDate() {Log.i("TAG","--ok-");new Thread(new Runnable() {@Overridepublic void run() {OkHttpClient client=new OkHttpClient();Request request=new Request.Builder().url("http://192.168.1.6:8080/RecyclerView.json").build();try {Response sponse=client.newCall(request).execute();date=sponse.body().string();//解析jsonJXDate(date);} catch (IOException e) {e.printStackTrace();}}}).start();}private void jsonJXDate(String date) {if(date!=null) {try {JSONArray array = new JSONArray(date);for (int i = 0; i < array.length(); i++) {JSONObject object = array.getJSONObject(i);title = object.getString("title");Map<String, Object> map = new HashMap<>();map.put("title", title);list.add(map);}Message msg=new Message();msg.what=1;handler.sendMessage(msg);} catch (JSONException e) {e.printStackTrace();}}}public Handler handler=new Handler(){@Overridepublic void handleMessage(Message msg) {switch (msg.what){case 1://添加分割线recyclerview.addItemDecoration(new DividerItemDecoration(MainActivity.this, DividerItemDecoration.VERTICAL));recy_item_Adapter recy=new recy_item_Adapter(list,MainActivity.this);//设置布局显示格式recyclerview.setLayoutManager(new LinearLayoutManager(MainActivity.this));recyclerview.setAdapter(recy);break;}}};}

5、创建recyclerview适配器recy_item_Adapter.java

public class recy_item_Adapter extends RecyclerView.Adapter<recy_item_Adapter.ViewHolder> {public List<Map<String,Object>> list=new ArrayList<>();public Context con;public  LayoutInflater inflater;public  recy_item_Adapter(List<Map<String,Object>> list, Context con){this.con=con;this.list=list;inflater=LayoutInflater.from(con);}@Overridepublic ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {View view= inflater.inflate(R.layout.recyclerview_item,null);ViewHolder viewHolder=new ViewHolder(view);return viewHolder;}@Overridepublic void onBindViewHolder(final ViewHolder holder, int position) {holder.recy_tv.setText(list.get(position).get("title").toString());}@Overridepublic int getItemCount() {return list.size();}class ViewHolder extends RecyclerView.ViewHolder{public TextView recy_tv;public ViewHolder(View itemView) {super(itemView);recy_tv= (TextView) itemView.findViewById(R.id.recy_item);}}}

网络权限:
<uses-permission android:name="android.permission.INTERNET"></uses-permission>

点击事件监听:http://www.jianshu.com/p/f2e0463e5aef

获取json数据显示RecyclerView相关推荐

  1. ajax获取api中json数据显示到网页【带有“-”横杠注意】

    ajax获取api中json数据显示到网页 JSON数据中 类如aaa-bbb  这个中间有横杠的正确写法 $(function(){$.ajax({url: 'https://api.xxx.com ...

  2. android从服务端获取json解析显示在客户端上面,Android服务端获取json解析显示在客户端上面.doc...

    Android服务端获取json解析显示在客户端上面 Android从服务端获取json解析显示在客户端上面 首先说一下Json数据的最基本的特点,Json数据是一系列的键值对的集合,和XML数据来比 ...

  3. 微信小程序获取OneNet数据显示温湿度

    微信小程序获取OneNet数据显示温湿度 一.OneNet平台 ​ 1.我这里的设备是通过MQTT协议连接到OneNet平台的 ​ 2.微信小程序获取OneNet数据需要得到产品的api-key.设备 ...

  4. Ajax 获取 JSON数据

    文章目录 Ajax获取JSON数据 Ajax获取JSON数据 Ajax 全称"Asynchronous JavaScript and XML",译为"异步 JavaScr ...

  5. ajax获取json数据示例

    使用ajax请求数据时,可以先封装ajax function querystring(obj) {var str = "";for (var arr in obj) {str += ...

  6. wps解析json数据_通过WordPress HTTP API 获取json内容并解析

    WordPress 4.0的一个亮点就是JSON API的加入,今天我们提前来看看怎么获取JSON的内容并显示出来.过程就是用PHP获取远程JSON的内容,然后把获取到的JSON转化为PHP对象,然后 ...

  7. AngularJS学习笔记(3)——通过Ajax获取JSON数据

    通过Ajax获取JSON数据 以我之前写的与用户交互的动态清单列表为例,使用JSON前todo.html代码如下: <!DOCTYPE html> <html ng-app=&quo ...

  8. dojo从asp.net中获取json数据

    搞来有搞去终于有了个结果,主要是一开始犯了一些低级错误. 对于json不太了解的童鞋,可以看看这个:http://www.dreamdu.com/blog/2008/10/19/json_in_jav ...

  9. Android Volley 库通过网络获取 JSON 数据

    本文内容 什么是 Volley 库 Volley 能做什么 Volley 架构 环境 演示 Volley 库通过网络获取 JSON 数据 参考资料 Android 关于网络操作一般都会介绍 HttpC ...

最新文章

  1. select三级联动 怎么删除前一个的_python测试开发django57.xadmin选项二级联动
  2. 【高并发】你敢信??HashMap竟然干掉了CPU!!
  3. 美国医疗机构是如何应用和看待「新冠AI」的?
  4. 上传大数据到SharePoint 2010
  5. SAP Netweaver EACTT介绍
  6. 初识ABP vNext(8):ABP特征管理
  7. Haven Protocol为公共测试网xAsset推出新浏览器
  8. shell编程快速入门及实战
  9. 数字人民币如何操作使用?
  10. 路由器故障排除的思路与理论
  11. TASKCTL单机/分布式部署,启动服务/代理节点监听
  12. 终结者2免费教程_如何在模拟器上玩(匹配的还是手机服)_适用最新客户端
  13. 计算导论与c语言基础pdf下载,Cousera 计算导论与C语言基础 学习笔记
  14. C语言期末复习不挂科(快速入门)(和bug郭一起学C系列1)
  15. 整型常量(基于百度及各处资料加上我的个人经验整理而成)
  16. C语言中int转char型
  17. win7系统换主板后无法进系统,卡logo,无法进安全模式的解决方案
  18. python做情感分析
  19. HBase (1)---数据模型
  20. 博士生在校没药吃,父亲寄6斤布洛芬引热议!最新回应

热门文章

  1. 【C语言】typedef struct 和 struct 使用区别
  2. 9158多人视频 开创网络秀先河
  3. 【牛客刷题】/*开胃菜——简单四道编程题*/
  4. 小米r3g openwrt软件源,换源
  5. opencv: 颜色空间转换(cv2.cvtColor) 探究(图示+源码)
  6. 解决python pip下载速度慢的问题
  7. [资源分享] 【Springboot】实例讲解Springboot整合OpenTracing分布式链路追踪系统(Jaeger和Zipkin)
  8. 亚马逊云科技中国峰会:睿鸿股份获2022年度成长之星合作伙伴
  9. 设备5S管理点检图文标准及注意事项
  10. 分享一个可以批量换绑百度账号绑定邮箱+批量修改密码的软件