public class MainActivity2 extends AppCompatActivity {
private RecyclerView recyclerView;
private List<FoodBean.DataDTO> list=new ArrayList<>();
private MyBQ2Adapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
recyclerView=findViewById(R.id.rv);
OkGo.<String>get("http://43.143.146.165:7777/foods/getFoods?currentPage=1&pageSize=12").execute(new StringCallback() {
@Override
public void onSuccess(Response<String> response) {
String string = response.body().toString();
Log.e("---body","onSuccess:"+string);
Gson gson = new Gson();
FoodBean foodBean = gson.fromJson(string, FoodBean.class);
List<FoodBean.DataDTO> data = foodBean.getData();
list.addAll(data);
for (int i=0;i<list.size();i++) {
int type=(i%2==0)?0:1;
list.get(i).setType(type);
}
adapter.notifyDataSetChanged();
}
});
//定义适配器
adapter = new MyBQ2Adapter(list, this);
//设置适配器
recyclerView.setAdapter(adapter);
recyclerView.setLayoutManager(new GridLayoutManager(this,2));
adapter.setIonItemClick(new MyBQ2Adapter.IonItemClick() {
@Override
public void onItemClick(int position, View view) {
Toast.makeText(MainActivity2.this, ""+list.get(position).getTitle(), Toast.LENGTH_SHORT).show();
}
});
}
}
public class MyBQ2Adapter extends RecyclerView.Adapter<MyBQ2Adapter.MyBQ2>{
private List<FoodBean.DataDTO> list;
private Context context;
private int type=1;
//2:声明变量
private IonItemClick ionItemClick;
public IonItemClick getIonItemClick() {
return ionItemClick;
}
public void setIonItemClick(IonItemClick ionItemClick) {
this.ionItemClick = ionItemClick;
}
public MyBQ2Adapter(List<FoodBean.DataDTO> list, Context context) {
this.list = list;
this.context = context;
}
@NonNull
@Override
public MyBQ2 onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
//return new MyBQ2(LayoutInflater.from(context).inflate(R.layout.item,null));
if (type==0){
View inflate = LayoutInflater.from(context).inflate(R.layout.item, null);
MyBQ2 myBQ2 = new MyBQ2(inflate);
myBQ2.textView=inflate.findViewById(R.id.tv);
myBQ2.imageView=inflate.findViewById(R.id.img);
return myBQ2;
}else{
View inflate2 = LayoutInflater.from(context).inflate(R.layout.item2, null);
MyBQ2 myBQ2 = new MyBQ2(inflate2);
myBQ2.textView=inflate2.findViewById(R.id.tv2);
myBQ2.imageView=inflate2.findViewById(R.id.img2);
return myBQ2;
}
}
@SuppressLint("RecyclerView")
@Override
public void onBindViewHolder(@NonNull MyBQ2 holder, int position) {
type=list.get(position).getType();
holder.textView.setText(list.get(position).getTitle());
//holder.imageView.setImageResource(list.get(position).getPic());
Glide.with(context).load(list.get(position).getPic()).into(holder.imageView);
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
ionItemClick.onItemClick(position,view);
}
});
}
@Override
public int getItemCount() {
return list.size();
}
public class MyBQ2 extends RecyclerView.ViewHolder{
private ImageView imageView;
private TextView textView;
public MyBQ2(@NonNull View itemView) {
super(itemView);
}
}
//1:定义接口
public interface IonItemClick{
void onItemClick(int position,View view);
}
}