商城二级联动

本文介绍了如何在商城应用中实现二级联动效果。通过MainActivity作为主活动,实现UserView接口。左侧部分使用MyAdapter,继承自RecyclerView.Adapter,用于适配左侧列表数据。右侧则采用RightAdapter,同样继承自RecyclerView.Adapter,用于展示右侧的二级数据列表。
摘要由CSDN通过智能技术生成

public class MainActivity extends AppCompatActivity implements UserView {

private RecyclerView mRecyclerViewLeft, mRecyclerViewRight;
private EditText mEdSeach;
private List<LeftBean.ResultBean> listLeft;
private UserPresenterIml userPresenterIml;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    //初始化
    mRecyclerViewLeft = (RecyclerView) findViewById(R.id.recycler_left);
    mRecyclerViewRight = (RecyclerView) findViewById(R.id.recycler_right);
    mEdSeach = (EditText) findViewById(R.id.ed_seach);

    LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
    linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
    mRecyclerViewLeft.setLayoutManager(linearLayoutManager);

    GridLayoutManager gridLayoutManager = new GridLayoutManager(this, 3);
    mRecyclerViewRight.setLayoutManager(gridLayoutManager);
    userPresenterIml = new UserPresenterIml(new UserModelIml(), this);

    userPresenterIml.doShopLeftList(0);
    //跳转流式
    mEdSeach.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(MainActivity.this, LioushiActivity.class);
            MainActivity.this.startActivity(intent);
        }
    });
}

@Override
public void success(int type, String data) {
    if (type == 0) {
        listLeft = new Gson().fromJson(data, LeftBean.class).getResult();
        //创建适配器
        final MyAdapter adapter = new MyAdapter(MainActivity.this, listLeft);
        mRecyclerViewLeft.setAdapter(adapter);
        //将第一条数据默认设置成红色
        listLeft.get(0).setClick(true);
        adapter.result(new MyAdapter.CallBack() {
            @Override
            public void setData(int position) {
                //获取左边的id
                String id = listLeft.get(position).getId();
                userPresenterIml.doShopRightList(1, id);
                for (int i = 0; i < listLeft.size(); i++) {
                    if (i == position) {
                        listLeft.get(i).setClick(true);
                    } else {
                        listLeft.get(i).setClick(false);
                    }
                }
                adapter.notifyDataSetChanged();
            }
        });

        userPresenterIml.doShopRightList(1, listLeft.get(0).getId());
    } else {
        List<RightBean.ResultBean> listRight = new Gson().fromJson(data, RightBean.class).getResult();
        //创建适配器
        RightAdapter adapter = new RightAdapter(MainActivity.this, listRight);
        mRecyclerViewRight.setAdapter(adapter);
    }
}

@Override
public void fail(String error) {

}

}

左侧:MyAdapter

public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
private Context context;
private List<LeftBean.ResultBean> list=new ArrayList<>();
private CallBack callBack;

public MyAdapter(Context context, List<LeftBean.ResultBean> list) {
    this.context = context;
    this.list = list;
}

@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
    View view = View.inflate(context, R.layout.item_left, null);
    ViewHolder viewHolder = new ViewHolder(view);
    return viewHolder;
}

@Override
public void onBindViewHolder(@NonNull ViewHolder viewHolder, final int i) {
    viewHolder.name.setText(list.get(i).getName());
    if (list.get(i).isClick()){
        viewHolder.name.setTextColor(Color.RED);
    }else{
        viewHolder.name.setTextColor(Color.parseColor("#999999"));
    }
    viewHolder.itemView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            callBack.setData(i);
        }
    });
}

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

public class ViewHolder extends RecyclerView.ViewHolder {

    private TextView name;

    public ViewHolder(@NonNull View itemView) {
        super(itemView);
        name =(TextView)itemView.findViewById(R.id.tv_title);
    }
}
public void result(CallBack callBack){
    this.callBack=callBack;
}
public interface CallBack{
    void setData(int position);
}

}

右侧:RightAdapter

public class RightAdapter extends RecyclerView.Adapter<RightAdapter.ViewHolder> {
private Context context;
private List<RightBean.ResultBean> list=new ArrayList<>();

public RightAdapter(Context context, List<RightBean.ResultBean> list) {
    this.context = context;
    this.list = list;
}

@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
    View view = View.inflate(context, R.layout.item_right, null);
    ViewHolder viewHolder = new ViewHolder(view);
    return viewHolder;
}

@Override
public void onBindViewHolder(@NonNull ViewHolder viewHolder, int i) {
    viewHolder.name.setText(list.get(i).getName());
    viewHolder.name.setTextColor(Color.parseColor("#000000"));
}

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

public class ViewHolder extends RecyclerView.ViewHolder {

    private TextView name;

    public ViewHolder(@NonNull View itemView) {
        super(itemView);
        name =(TextView)itemView.findViewById(R.id.tv_title);
    }
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值