mvp+OKhttp分类 左边RecyclerView 右边也是RecyclerView嵌套 点击左边的条目传一个id展示在右边RecyclerView展示数据

MainActivity

package com.example.yuekaomoni.com.example;

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.OrientationHelper;
import android.support.v7.widget.RecyclerView;

import com.example.yuekaomoni.R;

import java.util.HashMap;
import java.util.Map;

public class MainActivity extends AppCompatActivity implements IView{

private ShopAdapter shopAdapter;
private String url = "http://www.zhaoapi.cn/product/getCatagory";
private String path = "http://www.zhaoapi.cn/product/getProductCatagory";
private IPersenter mPersenter;
private RecyclerView lContents,rContents;
private ShoponeAdapter shoponeAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    mPersenter =  new IPersenter(this);
    initView();
    startRequest();
    initData();
}

//右侧
private void initData() {

    rContents = findViewById(R.id.contentsright);
    LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
    linearLayoutManager.setOrientation(OrientationHelper.VERTICAL);
    rContents.setLayoutManager(linearLayoutManager);

    DividerItemDecoration decoration = new DividerItemDecoration(this,OrientationHelper.VERTICAL);
    rContents.addItemDecoration(decoration);

    shoponeAdapter = new ShoponeAdapter(this);
    rContents.setAdapter(shoponeAdapter);
}

//左侧
private void initView() {

    lContents = findViewById(R.id.contentsleft);

    LinearLayoutManager layoutManager = new LinearLayoutManager(this);
    layoutManager.setOrientation(OrientationHelper.VERTICAL);
    lContents.setLayoutManager(layoutManager);

    shopAdapter = new ShopAdapter(this);
    lContents.setAdapter(shopAdapter);

    DividerItemDecoration decoration = new DividerItemDecoration(this,OrientationHelper.VERTICAL);
    lContents.addItemDecoration(decoration);

    shopAdapter.setOnItemClick(new ShopAdapter.OnItemClick() {
        @Override
        public void success(int position, String cid) {
            getData(cid);
        }
    });
}

public void getData(String cid){
    Map<String,String> map = new HashMap<>();
    map.put("cid",cid);
    mPersenter.requestData(path,map,ShopTypeProductBean.class);
}

private void startRequest() {
    Map<String,String> map = new HashMap<>();
    mPersenter.requestData(url,map,ShopTypeBean.class);
}

@Override
public void showRequest(Object data) {
    if(data instanceof ShopTypeBean){
        ShopTypeBean user = (ShopTypeBean) data;
        shopAdapter.setMlist(user.getData());
    }
    if(data instanceof ShopTypeProductBean)
    {
        ShopTypeProductBean user = (ShopTypeProductBean) data;
        shoponeAdapter.setMlist(user.getData());
    }
}

}

分类 左边的适配器

package com.example.yuekaomoni.com.example;

import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;

import com.example.yuekaomoni.R;

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

public class ShopAdapter extends RecyclerView.Adapter<ShopAdapter.MyViewHolder> {

private List<ShopTypeBean.Data> mlist;
private Context mContext;

public ShopAdapter(Context context){
    this.mContext = context;
    mlist = new ArrayList<>();
}

public void setMlist(List<ShopTypeBean.Data> mlist) {
    this.mlist = mlist;
    notifyDataSetChanged();
}

class MyViewHolder extends RecyclerView.ViewHolder {

    TextView textView;
    LinearLayout layout;
    public MyViewHolder(@NonNull View itemView) {
        super(itemView);

        textView = itemView.findViewById(R.id.lefttext);
        layout = itemView.findViewById(R.id.linear_item);
    }
}

@NonNull
@Override
public ShopAdapter.MyViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
    View view = View.inflate(mContext,R.layout.left_linear,null);
    return new MyViewHolder(view);
}

@Override
public void onBindViewHolder(@NonNull ShopAdapter.MyViewHolder myViewHolder, final int i) {
    myViewHolder.textView.setText(mlist.get(i).getName());
    myViewHolder.layout.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if(onItemClick!=null)
            {
                onItemClick.success(i,mlist.get(i).getCid());
            }
        }
    });
}

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

OnItemClick onItemClick;

public void setOnItemClick(OnItemClick mOnItemClick){
    this.onItemClick = mOnItemClick;
}

public interface OnItemClick{
    void success(int position,String cid);
}

}

右边父级的RecyclerView适配器

package com.example.yuekaomoni.com.example;

import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v7.widget.DividerItemDecoration;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.OrientationHelper;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import com.example.yuekaomoni.R;

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

public class ShoponeAdapter extends RecyclerView.Adapter<ShoponeAdapter.MyViewHolder> {

private List<ShopTypeProductBean.Data> mlist;
private Context mContext;

public ShoponeAdapter(Context context){
    this.mContext = context;
    mlist = new ArrayList<>();
}

public void setMlist(List<ShopTypeProductBean.Data> list) {
    mlist.addAll(list);
    notifyDataSetChanged();
}

class MyViewHolder extends RecyclerView.ViewHolder {

    TextView  textView;
    RecyclerView recyclerView;

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

        textView = itemView.findViewById(R.id.tv_shop_type_product_name);
        recyclerView = itemView.findViewById(R.id.recyclerview_shop_product);
    }
}

@NonNull
@Override
public ShoponeAdapter.MyViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
    View view = View.inflate(mContext,R.layout.right_one,null);
    ShoponeAdapter.MyViewHolder myViewHolder = new ShoponeAdapter.MyViewHolder(view);
    return myViewHolder;
}

@Override
public void onBindViewHolder(@NonNull ShoponeAdapter.MyViewHolder myViewHolder, int i) {

    myViewHolder.textView.setText(mlist.get(i).getName());
    ShoptwoAdapter shoptwoAdapter = new ShoptwoAdapter(mContext);

    LinearLayoutManager linearLayoutManager = new LinearLayoutManager(mContext);
    myViewHolder.recyclerView.setLayoutManager(linearLayoutManager);
    myViewHolder.recyclerView.setAdapter(shoptwoAdapter);

    DividerItemDecoration decoration = new DividerItemDecoration(mContext,OrientationHelper.VERTICAL);
    myViewHolder.recyclerView.addItemDecoration(decoration);

    shoptwoAdapter.setMlist(mlist.get(i).getList());
}

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

}

需要被嵌套的RecyclerView适配器

package com.example.yuekaomoni.com.example;

import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;

import com.bumptech.glide.Glide;
import com.example.yuekaomoni.R;

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

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

private List<ShopTypeProductBean.Data.ProductData> mlist;
private Context context;

public ShoptwoAdapter(Context context){
    this.context = context;
    mlist = new ArrayList<>();
}

public void setMlist(List<ShopTypeProductBean.Data.ProductData> list) {
    if(list!=null)
    {
        mlist.addAll(list);
    }
    notifyDataSetChanged();
}

class MyViewHolder extends RecyclerView.ViewHolder {

    ImageView imageView;
    TextView textView;

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

        imageView = itemView.findViewById(R.id.iv_shop_type_product_linear);
        textView = itemView.findViewById(R.id.tv_shop_type_product_linear);
    }
}

@NonNull
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
    View view = View.inflate(context,R.layout.right_two,null);
    ShoptwoAdapter.MyViewHolder myViewHolder = new ShoptwoAdapter.MyViewHolder(view);
    return myViewHolder;
}

@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder myViewHolder, int i) {

    ShoptwoAdapter.MyViewHolder holder = (MyViewHolder) myViewHolder;
    holder.textView.setText(mlist.get(i).getName());
    Glide.with(context).load(mlist.get(i).getIcon()).into(holder.imageView);
}
@Override
public int getItemCount() {
    return mlist.size();
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值