OkHttpClient okHttpClient = new OkHttpClient.Builder()
.addNetworkInterceptor(getAppInterceptor())
.build();
//拦截器
private static Interceptor getAppInterceptor(){
Interceptor interceptor = new Interceptor() {
@Override
public Response intercept(Chain chain) throws IOException {
Request request = chain.request();
Log.i("aaa","--------"+"拦截前");
Response response = chain.proceed(request);
Log.i("aaa","--------"+"拦截后");
return response;
}
};
return interceptor;
}
适配器
package com.bw.zsd.zhangsaida0218.adapter;
import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
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 com.bw.zsd.zhangsaida0218.R;
import com.bw.zsd.zhangsaida0218.bean.Json;
import com.nostra13.universalimageloader.core.ImageLoader;
import java.util.List;
import static android.icu.lang.UCharacter.GraphemeClusterBreak.V;
/**
* @Auther: ZSD
* @Date: 2019/2/18 0018 09:33:30
* @Description:
*/
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
private List<Json.DataBeanX.DataBean> list;
private Context context;
private final static int TYPE_ONE = 0;
private final static int TYPE_TWO = 1;
private String a;
private String s1;
public MyAdapter(List<Json.DataBeanX.DataBean> list, Context context) {
this.list = list;
this.context = context;
}
@Override
public int getItemViewType(int position) {
if ((position + 1 )% 4 == 0) {
return TYPE_ONE;
}else {
return TYPE_TWO;
}
}
@NonNull
@Override
public MyAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
if (i == TYPE_TWO) {
View view = LayoutInflater.from(context).inflate(R.layout.item, null,false);
return new ViewHolder(view);
}else {
View view = LayoutInflater.from(context).inflate(R.layout.item2, null,false);
return new ViewHolder(view);
}
}
@Override
public void onBindViewHolder(@NonNull final MyAdapter.ViewHolder viewHolder, final int i) {
List<String> s = list.get(i).getPics();
for (int j = 0; j < s.size(); j++) {
s1 = s.get(j);
}
a = "http://365jia.cn/uploads/" + s1;
if (getItemViewType(i)== TYPE_TWO) {
//标题
viewHolder.textView.setText(list.get(i).getTitle()+"");
//图片
ImageLoader.getInstance().displayImage(a, viewHolder.imageView);
}else {
ImageLoader.getInstance().displayImage(a, viewHolder.imageView2);
}
viewHolder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int adapterPosition = viewHolder.getAdapterPosition();
View view = viewHolder.itemView;
if (onItemClickLinsenter != null) {
onItemClickLinsenter.getOnItemClickLinsenter(view,adapterPosition);
}
}
});
viewHolder.itemView.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
int adapterPosition = viewHolder.getAdapterPosition();
View view = viewHolder.itemView;
if (onItemLongClickLinsenter != null) {
onItemLongClickLinsenter.getOnItemLongClickLinsenter(view,adapterPosition);
}
return true;
}
});
}
@Override
public int getItemCount() {
//判断不为空
if (list != null) {
return list.size();
} else {
return 0;
}
}
public class ViewHolder extends RecyclerView.ViewHolder {
private TextView textView;
private ImageView imageView;
private ImageView imageView2;
public ViewHolder(@NonNull View view) {
super(view);
//获取id
imageView2 = view.findViewById(R.id.image2);
textView = view.findViewById(R.id.text1);
imageView = view.findViewById(R.id.image1);
}
}
public interface OnItemClickLinsenter{
void getOnItemClickLinsenter(View view,int i);
}
public interface OnItemLongClickLinsenter{
void getOnItemLongClickLinsenter(View view,int i);
}
public OnItemClickLinsenter onItemClickLinsenter;
public OnItemLongClickLinsenter onItemLongClickLinsenter;
public void setItemClickListener(OnItemClickLinsenter onItemClickLinsenter) {
this.onItemClickLinsenter = onItemClickLinsenter;
}
public void setItemLongClickListener(OnItemLongClickLinsenter onItemLongClickLinsenter) {
this.onItemLongClickLinsenter = onItemLongClickLinsenter;
}
}
MainActivity
package com.bw.zsd.zhangsaida0218.view;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.DividerItemDecoration;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.Toast;
import com.bw.zsd.zhangsaida0218.R;
import com.bw.zsd.zhangsaida0218.adapter.MyAdapter;
import com.bw.zsd.zhangsaida0218.app.MyApp;
import com.bw.zsd.zhangsaida0218.bean.Json;
import com.bw.zsd.zhangsaida0218.presenter.RePresenter;
import com.bw.zsd.zhangsaida0218.presenter.RePresenterInterface;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity implements ReView{
private ArrayList<Json.DataBeanX.DataBean> list = new ArrayList<>();
private RecyclerView recyclerView;
private RePresenterInterface rePresenterInterface;
private MyAdapter adapter;
private LinearLayoutManager layout;
private Json s;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
recyclerView = findViewById(R.id.RecyclerView1);
//2.设置布局方式
layout = new LinearLayoutManager(this);
recyclerView.setLayoutManager(layout); //线性布局
recyclerView.addItemDecoration(new DividerItemDecoration(this,LinearLayout.VERTICAL));
rePresenterInterface = new RePresenter(this);
rePresenterInterface.getJsonString();
}
@Override
public void onReshDesplay(Object o) {
s = (Json) o;
List<Json.DataBeanX.DataBean> data = s.getData().getData();
list.addAll(data);
adapter = new MyAdapter(list, MainActivity.this);
recyclerView.setAdapter(adapter);
adapter.setItemClickListener(new MyAdapter.OnItemClickLinsenter() {
@Override
public void getOnItemClickLinsenter(View view, int i) {
Toast.makeText(MainActivity.this,"点击",Toast.LENGTH_LONG).show();
}
});
adapter.setItemLongClickListener(new MyAdapter.OnItemLongClickLinsenter() {
@Override
public void getOnItemLongClickLinsenter(View view, int i) {
if (i != list.size()) {
list.remove(i);
adapter.notifyDataSetChanged();
Toast.makeText(MainActivity.this,"长按",Toast.LENGTH_LONG).show();
}
}
});
}
//页面销毁时调用软引用销毁
@Override
protected void onDestroy() {
super.onDestroy();
// rePresenterInterface.deatchView
}
}