RecyclerView嵌套+搜索框

第一个适配器

import android.content.Context;
import android.graphics.Color;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;

import com.example.dome8.R;
import com.example.dome8.bean.ShidingBean;

import java.util.ArrayList;
import java.util.List;
public class OneAdapter extends RecyclerView.Adapter<OneAdapter.OneHolder> {
private Context context ;
private List<ShidingBean.ResultBean> resultBeans = new ArrayList<>();
private int mColor=0;
//构造函数
public OneAdapter(Context context, List<ShidingBean.ResultBean> resultBeans) {
this.context = context;
this.resultBeans = resultBeans;
}

@NonNull
@Override
public OneHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
    View view = View.inflate(context, R.layout.one_item, null);
    OneHolder oneHolder = new OneHolder(view);
    return oneHolder;
}

@Override
public void onBindViewHolder(@NonNull OneHolder holder, int position) {
    //获取名字
    holder.name.setText(resultBeans.get(position).getName()+"");
    //判断颜色
    if (mColor==position){
        holder.name.setTextColor(Color.RED);
    }else {
        holder.name.setTextColor(Color.BLACK);
    }
    //设置单击事件
    holder.itemView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (click != null) {
                click.setIndex(position);
            }
        }
    });

}

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

public class OneHolder extends RecyclerView.ViewHolder {

    private final TextView name;

    public OneHolder(@NonNull View itemView) {
        super(itemView);
        name = itemView.findViewById(R.id.one_name);
    }
}

//实现点击接口
public interface ItemClick{
    void setIndex(int position);
}
private ItemClick click;
//点击方法
public void setItemClick(ItemClick click){
    this.click=click;
}
//点击切换颜色
public void setColor(int position){
    this.mColor=position;
    //每次点击切换的时候刷新适配器
    notifyDataSetChanged();
}

}

第二个适配器

import android.content.Context;
import android.graphics.Color;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;

import com.example.dome8.R;
import com.example.dome8.bean.ShidingBean;

import java.util.ArrayList;
import java.util.List;
public class OneAdapter extends RecyclerView.Adapter<OneAdapter.OneHolder> {
private Context context ;
private List<ShidingBean.ResultBean> resultBeans = new ArrayList<>();
private int mColor=0;
//构造函数
public OneAdapter(Context context, List<ShidingBean.ResultBean> resultBeans) {
this.context = context;
this.resultBeans = resultBeans;
}

@NonNull
@Override
public OneHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
    View view = View.inflate(context, R.layout.one_item, null);
    OneHolder oneHolder = new OneHolder(view);
    return oneHolder;
}

@Override
public void onBindViewHolder(@NonNull OneHolder holder, int position) {
    //获取名字
    holder.name.setText(resultBeans.get(position).getName()+"");
    //判断颜色
    if (mColor==position){
        holder.name.setTextColor(Color.RED);
    }else {
        holder.name.setTextColor(Color.BLACK);
    }
    //设置单击事件
    holder.itemView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (click != null) {
                click.setIndex(position);
            }
        }
    });

}

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

public class OneHolder extends RecyclerView.ViewHolder {

    private final TextView name;

    public OneHolder(@NonNull View itemView) {
        super(itemView);
        name = itemView.findViewById(R.id.one_name);
    }
}

//实现点击接口
public interface ItemClick{
    void setIndex(int position);
}
private ItemClick click;
//点击方法
public void setItemClick(ItemClick click){
    this.click=click;
}
//点击切换颜色
public void setColor(int position){
    this.mColor=position;
    //每次点击切换的时候刷新适配器
    notifyDataSetChanged();
}

}

Activity中

import android.view.View;

import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;

import com.example.dome8.adapter.OneAdapter;
import com.example.dome8.adapter.TowAdapter;
import com.example.dome8.base.BasePresenter;
import com.example.dome8.base.FragmentActivity;
import com.example.dome8.bean.ShidingBean;
import com.example.dome8.mvp.IPresneterInpl;
import com.example.dome8.netutlis.NetUtlis;
import com.example.dome8.url.BaseUrl;

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

/**

  • A simple {@link Fragment} subclass.
    */
    public class ShouFragment extends FragmentActivity {

    private RecyclerView tow_recy;
    private RecyclerView one_recy;
    //商品分类
    private List<ShidingBean.ResultBean> resultBeans = new ArrayList<>();
    //具体商品
    private List<ShidingBean.ResultBean.SecondCategoryVoBean> beanList = new ArrayList<>();
    private OneAdapter oneAdapter;
    private TowAdapter towAdapter;

    @Override
    protected void initViews(View inflate) {
    one_recy = inflate.findViewById(R.id.one_recy);
    tow_recy = inflate.findViewById(R.id.tow_recy);
    one_recy.setLayoutManager(new LinearLayoutManager(getActivity()));
    tow_recy.setLayoutManager(new GridLayoutManager(getActivity(),3));
    }

    @Override
    protected int inityout() {
    return R.layout.fragment_shou;
    }

    @Override
    protected void initData() {
    oneAdapter = new OneAdapter(getActivity(),resultBeans);
    one_recy.setAdapter(oneAdapter);
    towAdapter = new TowAdapter(getActivity(),beanList);
    tow_recy.setAdapter(towAdapter);
    //设置点击事件
    oneAdapter.setItemClick(new OneAdapter.ItemClick() {
    @Override
    public void setIndex(int position) {
    oneAdapter.setColor(position);
    beanList.clear();
    //添加旧数据
    beanList.addAll(resultBeans.get(position).getSecondCategoryVo());
    //刷新适配器
    towAdapter.notifyDataSetChanged();
    }
    });
    NetUtlis.getInstance().GetPramsInfo(BaseUrl.SHINGURL, ShidingBean.class, new NetUtlis.NetCallback() {
    @Override
    public void onSuccess(Object o) {
    if (o instanceof ShidingBean){
    //添加数据
    resultBeans.addAll(((ShidingBean) o).getResult());
    oneAdapter.notifyDataSetChanged();
    beanList.addAll(resultBeans.get(0).getSecondCategoryVo());
    towAdapter.notifyDataSetChanged();
    }
    }

         @Override
         public void onError(String error) {
    
         }
     });
    

    }

    @Override
    protected BasePresenter initPresenter() {
    return new IPresneterInpl();
    }

    @Override
    public void onSuccess(Object o) {

    }

    @Override
    public void onError(String error) {

    }
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值