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();
}
}