Android仿京东商品分类

布局文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">

    <android.support.v7.widget.RecyclerView
        android:id="@+id/re_left"
        android:layout_width="200dp"
        android:layout_height="match_parent" />

    <android.support.v7.widget.RecyclerView
        android:id="@+id/re_right"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
</LinearLayout>

java代码:

public class ShopCartFragment extends Fragment {

private Activity mactivity;
private RecyclerView re_left;
private RecyclerView re_right;
private String path = "http://www.zhaoapi.cn/product/getCatagory?tdsourcetag=s_pcqq_aiomsg";
private String path1 = "http://www.zhaoapi.cn/product/getProductCatagory?cid=3";
private ArrayList<Shop_left.DataBean> list;
private ArrayList<Shop_right.DataBean> list1;

@Override
public void onAttach(Context context) {
    super.onAttach(context);
    mactivity = (Activity) context;
}

@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
}

Handler handler = new Handler(){
    @Override
    public void handleMessage(Message msg) {
        super.handleMessage(msg);
        switch (msg.what){
            case 0:
                RecyclerViewLeftAdapter recyclerViewLeftAdapter = new RecyclerViewLeftAdapter(mactivity,list);
                re_left.setAdapter(recyclerViewLeftAdapter);
                break;
            case 1:
                RecyclerViewRightAdapter recyclerViewRightAdapter = new RecyclerViewRightAdapter(mactivity,list1);
                re_right.setAdapter(recyclerViewRightAdapter);
                break;
        }
    }
};
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.shopcart_recycleview, null);

    //获取控件
    re_left = view.findViewById(R.id.re_left);
    re_right = view.findViewById(R.id.re_right);
    
   //获取数据
    OkHttpUtils okHttpUtils = new OkHttpUtils();
    okHttpUtils.get(path).getDataLisenter(new OkHttpUtils.GetData() {

        @Override
        public void Data(String s) {
            list = new ArrayList<>();
            Gson gson = new Gson();
            Shop_left shop_left = gson.fromJson(s, Shop_left.class);
            List<Shop_left.DataBean> data = shop_left.getData();
            list.addAll(data);
            Message message = Message.obtain();
            message.what = 0;
            message.obj = list;
            handler.sendMessage(message);
        }
    });

    //设置布局
    LinearLayoutManager linearLayoutManager = new LinearLayoutManager(mactivity);
    linearLayoutManager.setOrientation(LinearLayout.VERTICAL);
    re_left.setLayoutManager(linearLayoutManager);
    //设置分割线
    re_left.addItemDecoration(new DividerItemDecoration(mactivity,DividerItemDecoration.VERTICAL));
    
    //获取数据
    OkHttpUtils okHttpUtil = new OkHttpUtils();
    okHttpUtil.get(path1).getDataLisenter(new OkHttpUtils.GetData() {

        @Override
        public void Data(String s) {
            list1 = new ArrayList<>();
            Gson gson = new Gson();
            Shop_right shop_right = gson.fromJson(s, Shop_right.class);
            List<Shop_right.DataBean> dataBeans = shop_right.getData();
            list1.addAll(dataBeans);
            Message message = Message.obtain();
            message.what = 1;
            message.obj = list;
            handler.sendMessage(message);
        }
    });
    //设置布局
    LinearLayoutManager linearLayoutManager1 = new LinearLayoutManager(mactivity);
    linearLayoutManager1.setOrientation(LinearLayoutManager.VERTICAL);
    re_right.setLayoutManager(linearLayoutManager1);

    return view;
}

}

左侧布局文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="50dp">

    <TextView
        android:id="@+id/text"
        android:layout_width="200dp"
        android:layout_height="50dp"
        android:gravity="center"
        android:text="text"
        android:textSize="18sp"/>

</LinearLayout>

左侧展示数据适配器:

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

private Context context;
private ArrayList<Shop_left.DataBean> list;

public RecyclerViewLeftAdapter(Context context, ArrayList<Shop_left.DataBean> list) {
    this.context = context;
    this.list = list;
}

@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {

    View view = LayoutInflater.from(context).inflate(R.layout.re_left_item, null);
    ViewHolder holder = new ViewHolder(view);
    return holder;
}

@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {

    holder.text.setText(list.get(position).getName());
}

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

public class ViewHolder extends RecyclerView.ViewHolder {

    private final TextView text;

    public ViewHolder(View itemView) {
        super(itemView);
        text = itemView.findViewById(R.id.text);
    }
}

}

右侧布局文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:padding="10dp">

    <TextView
        android:id="@+id/textView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="text"
        android:textSize="20sp"/>

    <android.support.v7.widget.RecyclerView
        android:id="@+id/recyclerView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>

</LinearLayout>

右侧展示数据适配器:

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

private Context context;
private ArrayList<Shop_right.DataBean> list1;

public RecyclerViewRightAdapter(Context context, ArrayList<Shop_right.DataBean> list1) {
    this.context = context;
    this.list1 = list1;
}

@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
    View view = LayoutInflater.from(context).inflate(R.layout.re_right_item, parent, false);
    ViewHolder holder = new ViewHolder(view);
    return holder;
}

@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {

    holder.text.setText(list1.get(position).getName());
    holder.recyclerView.setLayoutManager(new GridLayoutManager(context,3,LinearLayoutManager.VERTICAL,false));
    RecyclerViewRightChildAdapter adapter = new RecyclerViewRightChildAdapter(context,list1.get(position).getList());
    holder.recyclerView.setAdapter(adapter);

}

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

public class ViewHolder extends RecyclerView.ViewHolder {

    private final TextView text;
    private final RecyclerView recyclerView;

    public ViewHolder(View itemView) {
        super(itemView);
        text = itemView.findViewById(R.id.textView);
        recyclerView = itemView.findViewById(R.id.recyclerView);
    }
  }
}

子条目布局文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:padding="10dp">

    <ImageView
       android:id="@+id/image"
       android:layout_width="100dp"
       android:layout_height="100dp"
       android:src="@mipmap/ic_launcher" />

   <TextView
       android:id="@+id/text"
       android:layout_width="100dp"
       android:layout_height="wrap_content"
       android:gravity="center"
       android:text="text" />
           
</LinearLayout>

子条目适配器:

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

private Context context;
private List<Shop_right.DataBean.ListBean> listBeans;

public RecyclerViewRightChildAdapter(Context context, List<Shop_right.DataBean.ListBean> listBeans) {
    this.context = context;
    this.listBeans = listBeans;
}

@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
    View view = LayoutInflater.from(context).inflate(R.layout.re_right_child, parent, false);
    ViewHolder holder = new ViewHolder(view);
    return holder;
}

@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {

    holder.text.setText(listBeans.get(position).getName());
    Picasso.with(context).load(listBeans.get(position).getIcon()).into(holder.image);
}

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

public class ViewHolder extends RecyclerView.ViewHolder {

    private final ImageView image;
    private final TextView text;

    public ViewHolder(View itemView) {
        super(itemView);
        image = itemView.findViewById(R.id.image);
        text = itemView.findViewById(R.id.text);
      }
   }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值