//获取商品
public class ShowCardModel implements IShowCardModel {
@Override
public void getGoodsCard(String url,GsonObjectCallback callback) {
OkhttpUtil.getInstance().doGet(url, callback);
}
//请求商品 子 分类的网络接口
@Override
public void getRightData(String url, GsonObjectCallback<GroupGoodsBean> callback) {
OkhttpUtil.getInstance().doGet(url,callback);
}
}
//recyview的点击事件
public interface OnItemClickListner {
void onItemClick(View view, int cid);
}
public interface IShowCardView {
//给右侧list展示数据(给右侧recyclerview设置adapter并加载数据)
void showRightData(List<GroupGoodsBean.DataBean> data);
//给左侧list展示数据(给左侧recyclerview设置adapter并加载数据)
void showCardData(List<CatagoryBean.DataBean> data);
//报错信息的展示
void showError(String error);
}
public interface IShowCardModel {
//请求商品子分类类别的数据接口,显示右侧列表
void getRightData(String url, GsonObjectCallback<GroupGoodsBean> callback);
//请求商品总分类接口,用于在图一的左侧列表上显示
void getGoodsCard(String url, GsonObjectCallback<CatagoryBean> callback);
}
adapter适配器
public class GroupAdapter extends RecyclerView.Adapter<GroupAdapter.GroupViewHolder> {
private List<GroupGoodsBean.DataBean> list = new ArrayList<>();
private Context context;
public GroupAdapter(Context context ) {
this.context = context;
}
//刷新数据
public void updateData(List<GroupGoodsBean.DataBean> list){
this.list.clear();
this.list.addAll(list);
notifyDataSetChanged();
}
@Override
public GroupViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(context).inflate(R.layout.group_item, null);
return new GroupViewHolder(view);
}
@Override
public void onBindViewHolder(GroupViewHolder holder, int position) {
holder.textView.setText(list.get(position).getName());
//网格recyclerview的数据展示
holder.recyclerView.setLayoutManager(new GridLayoutManager(context, 3));
MyAdapter adapter = new MyAdapter(context);
//为图一嵌套的recyclerview设置适配器
holder.recyclerView.setAdapter(adapter);
adapter.addData(list.get(position).getList());
}
@Override
public int getItemCount() {
return list.size();
}
class GroupViewHolder extends RecyclerView.ViewHolder {
public TextView textView;
public RecyclerView recyclerView;
public GroupViewHolder(View itemView) {
super(itemView);
textView = (TextView) itemView.findViewById(R.id.item_title);
recyclerView = (RecyclerView) itemView.findViewById(R.id.item_list);
}
}
}
public class LeftAdapter extends RecyclerView.Adapter<LeftAdapter.LeftViewHolder> {
private List<CatagoryBean.DataBean> list = new ArrayList<>();
private Context context;
public LeftAdapter(Context context, List<CatagoryBean.DataBean> list) {
this.context = context;
this.list = list;
}
@Override
public LeftViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(context).inflate(R.layout.text_item, parent,false);
return new LeftViewHolder(view);
}
@Override
public void onBindViewHolder(LeftViewHolder holder, final int position) {
//条目点击效果
if(po==position){
holder.textView.setTextColor(Color.RED);
holder.textView.setBackgroundColor(Color.parseColor("#eeeeee"));
}else {
holder.textView.setTextColor(Color.BLACK);
holder.textView.setBackgroundColor(Color.WHITE);
}
holder.textView.setText(list.get(position).getName());
holder.textView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
listner.onItemClick(v,list.get(position).getCid());
po=position;
notifyDataSetChanged();
}
});
}
private int po=0;
@Override
public int getItemCount() {
return list.size();
}
class LeftViewHolder extends RecyclerView.ViewHolder {
public TextView textView;
public LeftViewHolder(View itemView) {
super(itemView);
textView = (TextView) itemView.findViewById(R.id.left_title);
}
}
//设置条目点击事件
private OnItemClickListner listner;
public void setClick(OnItemClickListner listner){
this.listner=listner;
}
}
public class MyAdapter extends RecyclerView.Adapter<TextViewHolder> {
private ArrayList<GroupGoodsBean.DataBean.ListBean> list = new ArrayList<>();
private Context context;
public MyAdapter(Context context) {
this.context = context;
}
public void addData(List<GroupGoodsBean.DataBean.ListBean> data) {
this.list.addAll(data);
notifyDataSetChanged();
}
@Override
public TextViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
final View view = LayoutInflater.from(context).inflate(R.layout.item, null);
final TextViewHolder holder = new TextViewHolder(view);
//为图文item添加条目点击事件
view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//方式一:直接点击跳转
// context.startActivity(new Intent(context, SecondListActivity.class)
// .putExtra("pscid", list.get(holder.getLayoutPosition()).getPscid()));
}
});
return holder;
}
@Override
public void onBindViewHolder(TextViewHolder holder, int position) {
holder.textView.setText(list.get(position).getName());
holder.img.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
OkhttpUtil.getInstance().doGet("https://www.zhaoapi.cn/product/addCart?uid=12218&pid=2", new Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
System.out.println(response.body().string());
}
});
}
});
Glide.with(context).load(list.get(position).getIcon()).into(holder.img);
}
@Override
public int getItemCount() {
return list.size();
}
}
public class TextViewHolder extends RecyclerView.ViewHolder {
public TextView textView;
public ImageView img;
public TextViewHolder(View itemView){
super(itemView);
textView=(TextView)itemView.findViewById(R.id.mytitle);
img=(ImageView)itemView.findViewById(R.id.myimg);
}
}
public class MainActivity extends AppCompatActivity implements IShowCardView {
private RecyclerView leftList, rightList;
private LeftAdapter adapter;
private GroupAdapter groupAdapter;
private ShowGoodsPresenter presenter;
public MainActivity() {
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
leftList = (RecyclerView) findViewById(R.id.left_list);
rightList = (RecyclerView) findViewById(R.id.right_list);
//设置布局管理器
leftList.setLayoutManager(new LinearLayoutManager(MainActivity.this));
rightList.setLayoutManager(new LinearLayoutManager(MainActivity.this));
//初始化右侧列表对应的adapter,设置给右侧列表
groupAdapter = new GroupAdapter(MainActivity.this);
rightList.setAdapter(groupAdapter);
//实例化presenter;
presenter = new ShowGoodsPresenter();
//初始化presenter对应的view
presenter.attachView(this);
//开始调用presenter内定义的方法,展示左侧列表数据,并更新显示右侧列表数据;
presenter.getGoodsList();
}
@Override
public void showRightData(List<GroupGoodsBean.DataBean> data) {
groupAdapter.updateData(data);
}
//展示左侧列表
@Override
public void showCardData(List<CatagoryBean.DataBean> data) {
LeftAdapter adapter = new LeftAdapter(MainActivity.this, data);
leftList.setAdapter(adapter);
adapter.setClick(new OnItemClickListner() {
@Override
public void onItemClick(View view, int cid) {
//左侧列表的条目点击事件;
presenter.showRightList(cid);
}
});
}
@Override
public void showError(String error) {
Toast.makeText(MainActivity.this, error, Toast.LENGTH_SHORT).show();
}
@Override
protected void onDestroy() {
super.onDestroy();
presenter.detachView(this);
}
}