compile 'com.android.support:recyclerview-v7:25.3.1' compile 'com.google.code.gson:gson:2.8.2' compile 'com.squareup.okhttp3:okhttp:3.9.0' compile 'com.github.bumptech.glide:glide:3.7.0'<uses-permission android:name="android.permission.INTERNET"></uses-permission>android:name=".MyApplication"<android.support.v7.widget.RecyclerView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/recylerview" ></android.support.v7.widget.RecyclerView><?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" android:orientation="horizontal" > <ImageView android:id="@+id/img" android:layout_width="70dp" android:layout_height="70dp" android:layout_margin="10dp" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <TextView android:id="@+id/title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="aaaaa" /> <TextView android:id="@+id/name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:text="aaaa" /> </LinearLayout> </LinearLayout>package com.bawei.okhttpdome; import android.os.Build; import java.io.IOException; import okhttp3.Interceptor; import okhttp3.Request; import okhttp3.Response; /** * 网络拦截器 */ public class LoggingInterceptor implements Interceptor { private static final String UA = "User-Agent"; @Override public Response intercept(Chain chain) throws IOException { Request request = chain.request() .newBuilder() .addHeader(UA, makeUA()) .build(); return chain.proceed(request); } private String makeUA() { String s = Build.BRAND + "/" + Build.MODEL + "/" + Build.VERSION.RELEASE; return Build.BRAND + "/" + Build.MODEL + "/" + Build.VERSION.RELEASE; } }package com.bawei.okhttpdome; import android.os.Bundle; import android.os.Handler; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import com.google.gson.Gson; import java.io.IOException; import java.util.List; import okhttp3.Call; import okhttp3.Callback; import okhttp3.Request; import okhttp3.Response; public class MainActivity extends AppCompatActivity { private RecyclerView recylerview; private RecylerAdapter recyleradapter; private List<Bean.SongListBean> list; private Handler handler=null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); handler = new Handler(); recylerview = (RecyclerView) findViewById(R.id.recylerview); LinearLayoutManager linearLayoutManager = new LinearLayoutManager(MainActivity.this); linearLayoutManager.setOrientation(linearLayoutManager.VERTICAL); recylerview.setLayoutManager(linearLayoutManager); getData("http://tingapi.ting.baidu.com/v1/restserver/ting?method=baidu.ting.billboard.billList&type=1&size=10&offset=0"); } private void getData(String url) { Request build = new Request.Builder().url(url).build(); MyApplication.getOkHttpClient().newCall(build).enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) { } @Override public void onResponse(Call call, Response response) throws IOException { if (response.isSuccessful()) { String result = response.body().string(); Gson gson = new Gson(); Bean bean = gson.fromJson(result, Bean.class); list = bean.getSong_list(); runOnUiThread(new Runnable() { @Override public void run() { recyleradapter = new RecylerAdapter(list, MainActivity.this); recylerview.setAdapter(recyleradapter); } }); } } }); } }package com.bawei.okhttpdome; import android.app.Application; import java.util.concurrent.TimeUnit; import okhttp3.OkHttpClient; public class MyApplication extends Application { private static OkHttpClient okHttpClient; @Override public void onCreate() { super.onCreate(); boolean Debug = true; okHttpClient = new OkHttpClient(); okHttpClient = okHttpClient .newBuilder() //调用拦截器方法 .addInterceptor(new LoggingInterceptor()) .connectTimeout(5, TimeUnit.SECONDS) .readTimeout(5, TimeUnit.SECONDS) .build(); } public static OkHttpClient getOkHttpClient() { return okHttpClient; } }package com.bawei.okhttpdome; import android.content.Context; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; import com.bumptech.glide.Glide; import java.util.List; public class RecylerAdapter extends RecyclerView.Adapter<RecylerAdapter.MyViewHolder>{ private List<Bean.SongListBean> list; Context context; public RecylerAdapter(List<Bean.SongListBean> list, Context context) { this.list =list; this.context = context; } @Override public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view= LayoutInflater.from(parent.getContext()).inflate(R.layout.item,parent,false); return new MyViewHolder(view); } @Override public void onBindViewHolder(MyViewHolder holder, int position) { holder.title.setText(list.get(position).getTitle()); holder.name.setText(list.get(position).getAuthor()); final String imag=list.get(position).getPic_big(); Glide.with(context) .load(imag) .into(holder.imge); } @Override public int getItemCount() { return list.size(); } class MyViewHolder extends RecyclerView.ViewHolder{ private final ImageView imge; private final TextView title; private final TextView name; public MyViewHolder(View itemView) { super(itemView); imge = (ImageView) itemView.findViewById(R.id.img); title = (TextView) itemView.findViewById(R.id.title); name = (TextView) itemView.findViewById(R.id.name); } } } //自己添加bean类
OKhttp
最新推荐文章于 2025-06-15 10:06:25 发布