使用OKhttp(MVP)网格布局和线性布局来回切换 适配器里面的正确写法

package com.example.zhoukaomoni.adapter;

import android.content.Context;
import android.support.annotation.NonNull;
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 com.example.zhoukaomoni.R;
import com.example.zhoukaomoni.bean.UserBean;

import java.util.ArrayList;
import java.util.List;

public class ContentAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {

private List<UserBean.DataBean> mlist;
private Context mContext;
private boolean flag;

public ContentAdapter(Context context,boolean mflag){
    mlist = new ArrayList<>();
    mContext = context;
    flag = mflag;
}


public void setMlist(List<UserBean.DataBean> list) {
    mlist.clear();
    if(list!=null)
    {
        mlist.addAll(list);
    }
    notifyDataSetChanged();
}

public void addMlist(List<UserBean.DataBean> list) {
    if(list!=null)
    {
        mlist.addAll(list);
    }
    notifyDataSetChanged();
}

class ViewHolder extends RecyclerView.ViewHolder {

    private TextView title,price,data;
    private ImageView icon;

    public ViewHolder(@NonNull View itemView) {
        super(itemView);

        title = itemView.findViewById(R.id.three_title);
        price = itemView.findViewById(R.id.three_price);
        data = itemView.findViewById(R.id.three_data);
        icon = itemView.findViewById(R.id.three_icon);
    }
}
@NonNull
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {

    RecyclerView.ViewHolder holder = null;
    if(flag)
    {
        View view = LayoutInflater.from(mContext).inflate(R.layout.three_item,viewGroup,false);
        holder = new ViewHolder(view);
    }else{
        View view = LayoutInflater.from(mContext).inflate(R.layout.three_two,viewGroup,false);
        holder = new ViewHolder(view);
    }
    return holder;
}

@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, int i) {
    ViewHolder holder = (ViewHolder) viewHolder;

    holder.title.setText(mlist.get(i).getTitle());
    holder.data.setText(mlist.get(i).getCreatetime());
    holder.price.setText(mlist.get(i).getPrice()+"");

    String R = "";
    int K = mlist.get(i).getImages().length();

    for (int j=0;j<K;j++)
    {
        if(mlist.get(i).getImages().substring(j,j+1).equals("|"))
        {
            R = mlist.get(i).getImages().substring(j+1,K).trim();
        }
    }
    Glide.with(mContext).load(R).into(holder.icon);
}

@Override
public int getItemCount() {
    return mlist.size();
}

}

Actvitiy

package com.example.zhoukaomoni.view;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.DividerItemDecoration;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.OrientationHelper;
import android.view.View;
import android.widget.Button;

import com.example.zhoukaomoni.R;
import com.example.zhoukaomoni.adapter.ContentAdapter;
import com.example.zhoukaomoni.bean.UserBean;
import com.example.zhoukaomoni.persenter.IPersenter;
import com.jcodecraeer.xrecyclerview.XRecyclerView;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class MainActivity extends AppCompatActivity implements IView,View.OnClickListener {

扫描二维码关注公众号,回复: 4574968 查看本文章
private XRecyclerView contents;
private IPersenter mPersenter;
private ContentAdapter adapter;
private String url = "http://www.zhaoapi.cn/product/searchProducts?keywords=%E7%94%B5%E8%84%91";
private int page;
private boolean flag = true;
private List<UserBean.DataBean> dataBeans = new ArrayList<>();
private LinearLayoutManager linearLayoutManager;
private GridLayoutManager gridLayoutManager;
private Button play;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    //加载id
    initView();
    //默认显示为第一页
    page=1;
    initRecyclerView();
    //管理器
    initManager();
    //系统分割线
    DividerItemDecoration decoration  = new DividerItemDecoration(this,OrientationHelper.VERTICAL);
    contents.addItemDecoration(decoration);
}
//加载id
private void initView() {
    contents = findViewById(R.id.contents);
    play = findViewById(R.id.play);
    mPersenter = new IPersenter(this);

    adapter = new ContentAdapter(this,flag);
    contents.setAdapter(adapter);

    play.setOnClickListener(this);
    //开始请求
    startRequest();
}

private void initManager() {
    linearLayoutManager = new LinearLayoutManager(this);
    linearLayoutManager.setOrientation(OrientationHelper.VERTICAL);
    contents.setLayoutManager(linearLayoutManager);

    gridLayoutManager = new GridLayoutManager(this,2);
    gridLayoutManager.setOrientation(OrientationHelper.VERTICAL);
}

private void initRecyclerView() {
    contents.setLoadingMoreEnabled(true);
    contents.setPullRefreshEnabled(true);
    contents.setLoadingListener(new XRecyclerView.LoadingListener() {
        @Override
        public void onRefresh() {
            page=1;
            startRequest();
        }

        @Override
        public void onLoadMore() {
            startRequest();
        }
    });
    startRequest();
}

private void startRequest() {

    Map<String,String> map = new HashMap<>();
    map.put("page",page+"");
    mPersenter.requestData(url,map,UserBean.class);
}

@Override
public void onClick(View v) {
    switch (v.getId())
    {
        case R.id.play:
            flag=!flag;
             adapter = new ContentAdapter(this,flag);
             adapter.setMlist(dataBeans);
                if(flag)
                {
                    contents.setLayoutManager(linearLayoutManager);
                }else{
                    contents.setLayoutManager(gridLayoutManager);
                }
            break;
    }
}
@Override
public void showRequest(Object data) {
    UserBean user = (UserBean) data;
    if(page==1)
    {
        dataBeans.clear();
        adapter.setMlist(user.getData());
    }else{
        adapter.addMlist(user.getData());
    }
    page++;
    dataBeans.addAll(user.getData());

    contents.refreshComplete();
    contents.loadMoreComplete();
}

}

猜你喜欢

转载自blog.csdn.net/qq_42960779/article/details/85043479