依赖:
Okhttp依赖:implementation 'com.squareup.okhttp3:okhttp:3.10.0'
RecyclerView依赖:
compile 'com.android.support:recyclerview-v7:26.0.0-alpha1'
compile 'com.android.support:recyclerview-v7:26.0.0-alpha1'
activity_main中:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.example.com.myapplication.MainActivity"> <android.support.v7.widget.RecyclerView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/rv"></android.support.v7.widget.RecyclerView> </LinearLayout>
Activitymain中:
package com.example.com.myapplication; import android.os.Handler; import android.os.Message; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.util.Log; import com.google.gson.Gson; import java.io.IOException; import java.util.List; import okhttp3.Call; import okhttp3.Callback; import okhttp3.Response; public class MainActivity extends AppCompatActivity { private String urldata="http://www.93.gov.cn/93app/data.do?channelId=0&startNum=10"; private RecyclerView rv; private Reqbean reqbean; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); getinit(); getdata(); } private void getdata() { okhttputil.doGet(urldata, new Callback() { @Override public void onFailure(Call call, IOException e) { } @Override public void onResponse(Call call, Response response) throws IOException { Gson gson = new Gson(); String s = response.body().string(); //Log.i( "---Smes",s); reqbean = gson.fromJson(s, Reqbean.class); final List<Reqbean.DataBean> data = reqbean.getData(); Log.i("---Smes",reqbean.getData().toString()); if (response.isSuccessful()){ runOnUiThread(new Runnable() { @Override public void run() { RecycleViewMyAdapter recycleViewMyAdapter = new RecycleViewMyAdapter(MainActivity.this,data); rv.setAdapter(recycleViewMyAdapter); recycleViewMyAdapter.notifyDataSetChanged(); } }); } } }); } private void getinit() { rv = findViewById(R.id.rv); //布局管理器 LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this,LinearLayoutManager.VERTICAL,false); rv.setLayoutManager(linearLayoutManager); } }
子布局:
<?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="match_parent" android:orientation="horizontal"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/tv" android:text="sdfdsfds"/> <ImageView android:layout_width="80dp" android:layout_height="80dp" android:id="@+id/img"/> </LinearLayout>
适配器中:
package com.example.com.myapplication; import android.content.Context; import android.graphics.Bitmap; import android.support.v7.widget.RecyclerView; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; import com.nostra13.universalimageloader.core.DisplayImageOptions; import com.nostra13.universalimageloader.core.ImageLoader; import com.nostra13.universalimageloader.core.assist.ImageScaleType; import com.nostra13.universalimageloader.core.display.RoundedBitmapDisplayer; import java.util.List; /** * Created by 联想 on 2018/5/26. */ class RecycleViewMyAdapter extends RecyclerView.Adapter<RecycleViewMyAdapter.ViewHolder> { private Context context; List<Reqbean.DataBean> data; private DisplayImageOptions options; public RecycleViewMyAdapter(Context context, List<Reqbean.DataBean> data) { this.context = context; this.data = data; /* options = new DisplayImageOptions.Builder() .cacheInMemory(true)//使用内存缓存 .cacheOnDisk(true)//使用磁盘缓存 .showImageOnLoading(R.mipmap.ic_launcher)//设置正在下载的图片 .showImageForEmptyUri(R.mipmap.ic_launcher)//url为空或请求的资源不存在时 .showImageOnFail(R.mipmap.ic_launcher)//下载失败时显示的图片 .bitmapConfig(Bitmap.Config.RGB_565)//设置图片色彩模式 1px=2字节 .imageScaleType(ImageScaleType.EXACTLY)//设置图片的缩放模式 .displayer(new RoundedBitmapDisplayer(100))//设置圆角 30代表半径 自定义 .build();*/ } @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View itemview = View.inflate(context, R.layout.item, null); ViewHolder viewHolder = new ViewHolder(itemview); return viewHolder; } @Override public void onBindViewHolder(ViewHolder holder, int position) { holder.text.setText(data.get(position).getTITLE()); //ImageLoader.getInstance().displayImage(data.get(position).getIMAGEURL(),holder.image); } @Override public int getItemCount() { return data.size(); } class ViewHolder extends RecyclerView.ViewHolder{ private final ImageView image; private final TextView text; public ViewHolder(View itemView) { super(itemView); text = itemView.findViewById(R.id.tv); image = itemView.findViewById(R.id.img); } } }