public class MainActivity3 extends AppCompatActivity {
private RecyclerView rv3,rv4;
private ArrayList<GoodBean.DataDoT.DataDoT1> list =new ArrayList<>();
private ArrayList<GoodBean2.DataDTO> list2 =new ArrayList<>();
private MyBQAdapter3 adapter3;
private MyBQAdapter4 adapter4;
private int id=14;
private int page=1;
private Banner ban;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main3);
//初始化控件
rv3=findViewById(R.id.rv3);
//准备数据源
OkGo.<String>get("http://43.143.146.165:7777/goods/category").execute(new StringCallback() {
@Override
public void onSuccess(Response<String> response) {
String string = response.body().toString();
Gson gson = new Gson();
GoodBean goodBean = gson.fromJson(string, GoodBean.class);
List<GoodBean.DataDoT> data = goodBean.getData();
for (int i=0;i<data.size();i++){
List<GoodBean.DataDoT.DataDoT1> data1 = data.get(i).getData();
list.addAll(data1);
adapter3.notifyDataSetChanged();
}
}
});
//定义适配器
adapter3=new MyBQAdapter3(R.layout.item3,list,this);
//设置适配器
rv3.setAdapter(adapter3);
rv3.setLayoutManager(new StaggeredGridLayoutManager(1,StaggeredGridLayoutManager.HORIZONTAL));
//初始化控件
rv4=findViewById(R.id.rv4);
//准备数据源
inint();
//定义适配器
adapter4=new MyBQAdapter4(R.layout.item,list2,this);
//设置适配器
rv4.setAdapter(adapter4);
rv4.setLayoutManager(new GridLayoutManager(this,2));
adapter3.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(@NonNull BaseQuickAdapter<?, ?> adapter, @NonNull View view, int position) {
id=list.get(position).getId();
page=1;
list2.clear();
inint();
}
});
//分割线
DividerItemDecoration dividerItemDecoration = new DividerItemDecoration(this, DividerItemDecoration.VERTICAL);
dividerItemDecoration.setDrawable(getResources().getDrawable(R.drawable.sp));
rv4.addItemDecoration(dividerItemDecoration);
//删除动画
DefaultItemAnimator defaultItemAnimator = new DefaultItemAnimator();
defaultItemAnimator.setAddDuration(2000);
defaultItemAnimator.setRemoveDuration(2000);
defaultItemAnimator.setChangeDuration(2000);
rv4.setItemAnimator(defaultItemAnimator);
adapter4.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(@NonNull BaseQuickAdapter<?, ?> adapter, @NonNull View view, int position) {
list2.remove(position);
adapter4.notifyItemRemoved(position);
}
});
//左右滑动删除
ItemTouchHelper itemTouchHelper = new ItemTouchHelper(new ItemTouchHelper.Callback() {
@Override
public int getMovementFlags(@NonNull RecyclerView recyclerView, @NonNull RecyclerView.ViewHolder viewHolder) {
int x=ItemTouchHelper.LEFT|ItemTouchHelper.RIGHT;
return makeMovementFlags(0,x);
}
@Override
public boolean onMove(@NonNull RecyclerView recyclerView, @NonNull RecyclerView.ViewHolder viewHolder, @NonNull RecyclerView.ViewHolder target) {
return true;
}
@Override
public void onSwiped(@NonNull RecyclerView.ViewHolder viewHolder, int direction) {
int position=viewHolder.getPosition();
list2.remove(position);
adapter4.notifyItemRemoved(position);
}
});
itemTouchHelper.attachToRecyclerView(rv4);
//环境复杂度,子控件点击事件
adapter4.addChildClickViewIds(R.id.img);
adapter4.addChildClickViewIds(R.id.tv);
adapter4.setOnItemChildClickListener(new OnItemChildClickListener() {
@Override
public void onItemChildClick(@NonNull BaseQuickAdapter adapter, @NonNull View view, int position) {
int id=view.getId();
switch (id){
case R.id.img:
Toast.makeText(MainActivity3.this, "点击了图片", Toast.LENGTH_SHORT).show();
break;
case R.id.tv:
Toast.makeText(MainActivity3.this, "点击了文字", Toast.LENGTH_SHORT).show();
break;
default:break;
}
}
});
//顶部轮播图
View inflate = LayoutInflater.from(this).inflate(R.layout.head, null);
ban=inflate.findViewById(R.id.ban);
adapter4.addHeaderView(inflate);
OkGo.<String>get("http://43.143.146.165:7777/banner/json").execute(new StringCallback() {
@Override
public void onSuccess(Response<String> response) {
String string = response.body().toString();
Gson gson = new Gson();
BanBean banBean = gson.fromJson(string, BanBean.class);
List<BanBean.DataDTO> data = banBean.getData();
List<String> listLun =new ArrayList<>();
for (int i=0;i<data.size();i++){
listLun.add(data.get(i).getImagePath());
}
ban.setImages(listLun);
ban.setImageLoader(new ImageLoader() {
@Override
public void displayImage(Context context, Object path, ImageView imageView) {
Glide.with(context).load(path).into(imageView);
}
});
ban.start();
}
});
}
private void inint() {
OkGo.<String>get("http://43.143.146.165:7777/goods/info?category_id="+id+"¤tPage="+page+"&pageSize=10").execute(new StringCallback() {
@Override
public void onSuccess(Response<String> response) {
String string = response.body().toString();
Gson gson = new Gson();
GoodBean2 goodBean2 = gson.fromJson(string, GoodBean2.class);
List<GoodBean2.DataDTO> data = goodBean2.getData();
list2.addAll(data);
adapter4.notifyDataSetChanged();
}
});
}
}
public class MyBQAdapter3 extends BaseQuickAdapter<GoodBean.DataDoT.DataDoT1, BaseViewHolder> {
private Context context;
public MyBQAdapter3(int layoutResId, @Nullable List<GoodBean.DataDoT.DataDoT1> data, Context context) {
super(layoutResId, data);
this.context = context;
}
@Override
protected void convert(@NonNull BaseViewHolder baseViewHolder, GoodBean.DataDoT.DataDoT1 dataDoT1) {
baseViewHolder.setText(R.id.tv3,dataDoT1.getCategory_name());
}
}
public class MyBQAdapter4 extends BaseQuickAdapter<GoodBean2.DataDTO, BaseViewHolder> {
Context context;
public MyBQAdapter4(int layoutResId, @Nullable List<GoodBean2.DataDTO> data, Context context) {
super(layoutResId, data);
this.context = context;
}
@Override
protected void convert(@NonNull BaseViewHolder baseViewHolder, GoodBean2.DataDTO dataDTO) {
baseViewHolder.setText(R.id.tv,dataDTO.getGoods_desc());
ImageView img = baseViewHolder.getView(R.id.img);
Glide.with(context).load(dataDTO.getGoods_default_icon()).into(img);
}
}