Retrofit请求网络解析json

本文介绍了如何在Android应用中使用RecyclerView展示图片和文字,包括布局设置、RecyclerView适配器的创建和维护,以及使用Retrofit进行网络请求并解析JSON数据。作者还分享了如何在项目中集成网络数据和适配器以实现数据展示。
摘要由CSDN通过智能技术生成

android:layout_height=“match_parent”></android.support.v7.widget.RecyclerView>

item:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android=“http://schemas.android.com/apk/res/android”

android:layout_width=“match_parent”

android:layout_height=“wrap_content”>

<ImageView

android:id=“@+id/imageView”

android:layout_width=“0dp”

android:layout_height=“120dp”

android:layout_weight=“2” />

<TextView

android:id=“@+id/textView”

android:layout_width=“0dp”

android:layout_height=“120dp”

android:layout_weight=“3”

android:gravity=“center” />

之后写一个RecyclerView的适配器,用具加入图片和文字

public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.MyHolder> {

private Context context;

private List<JavaBean.DataBean> data;//数据源集合

//构造方法

public RecyclerViewAdapter(Context context, List<JavaBean.DataBean> data) {

this.context = context;

this.data = data;

}

@NonNull

@Override

public MyHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {

View inflate = LayoutInflater.from(context).inflate(R.layout.item, viewGroup, false);

return new MyHolder(inflate);

}

@Override

public void onBindViewHolder(@NonNull MyHolder myHolder, int i) {

Picasso.with(context).load(data.get(i).getPic()).into(myHolder.imageView);//加入图片

myHolder.textView.setText(data.get(i).getTitle());//加入名字

}

@Override

public int getItemCount() {

return data.size();//返回集合size

}

public class MyHolder extends RecyclerView.ViewHolder {

ImageView imageView;

TextView textView;

public MyHolder(@NonNull View itemView) {

super(itemView);

imageView = itemView.findViewById(R.id.imageView);

textView = itemView.findViewById(R.id.textView);

}

}

}

提供网络字符串:http://www.qubaobei.com/ios/cf/dish_list.php?stage_id=1&limit=20&page=1

写出解析类JavaBean类,即解析类!

接下来是重点,如何通过Retrofit获取网络数据,看java代码

Retrofit retrofit = new Retrofit.Builder()

.baseUrl(“https://1604a.com/data/”)//网络数据源,网址前半段

.addConverterFactory(GsonConverterFactory.create())//解析

.build();

创建接口,get请求方式,写入网址的后半段,即最后一个“/”之后的字符,像下面这么写

public interface MyInterface {

@GET(“ymdx.json”)

Call gerRequest();

}

接着使用这个接口

MyInterface myInterface = retrofit.create(MyInterface.class);

Call call = myInterface.gerRequest();

接下来写Call的一个方法enqueue,注释有详细标明

call.enqueue(new Callback() {

//成功

@Override

public void onResponse(Call call, Response response) {

//解析添加到创建的集合

arrayList = response.body().getData();

recyclerView.setLayoutManager(new StaggeredGridLayoutManager(3,StaggeredGridLayoutManager.VERTICAL));

recyclerView.setItemAnimator(new DefaultItemAnimator());//RecyclerView动画:默认动画

//使用适配器

recyclerView.setAdapter(new RecyclerViewAdapter(MainActivity.this,arrayList));

}

//失败

@Override

public void onFailure(Call call, Throwable t) {

Toast.makeText(MainActivity.this, “请求失败”, Toast.LENGTH_SHORT).show();

}

});

看一下完整的java代码

public class MainActivity extends AppCompatActivity {

private List<JavaBean.DataBean> arrayList;

private RecyclerView recyclerView;

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)

文末

好了,今天的分享就到这里,如果你对在面试中遇到的问题,或者刚毕业及工作几年迷茫不知道该如何准备面试并突破现状提升自己,对于自己的未来还不够了解不知道给如何规划,可以来看看同行们都是如何突破现状,怎么学习的,来吸收他们的面试以及工作经验完善自己的之后的面试计划及职业规划。

这里放上一部分我工作以来以及参与过的大大小小的面试收集总结出来的一套进阶学习的视频及面试专题资料包,主要还是希望大家在如今大环境不好的情况下面试能够顺利一点,希望可以帮助到大家

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

行们都是如何突破现状,怎么学习的,来吸收他们的面试以及工作经验完善自己的之后的面试计划及职业规划。

这里放上一部分我工作以来以及参与过的大大小小的面试收集总结出来的一套进阶学习的视频及面试专题资料包,主要还是希望大家在如今大环境不好的情况下面试能够顺利一点,希望可以帮助到大家

[外链图片转存中…(img-xo26LIgp-1712797207577)]

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值