public class FruitAdapter extends RecyclerView.Adapter<FruitAdapter.ViewHolder> {
//定义集合
private List<Fruit> mFruitList;
//利用构造器传入数据
public FruitAdapter(List<Fruit> FruitList) {
this.mFruitList = FruitList;
}
//创建ViewHolder的实例
// ①onCreateViewHolder()用于创建ViewHolder实例,并把加载的布局传入到构造函数
@Override
public FruitAdapet.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
//由于ViewHolder构造器需要传入子项布局View对象,因此需要实例化子项布局
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.activity_fruit, parent, false);
//创建ViewHolder对象
ViewHolder viewHolder = new ViewHolder(view);
//返回值
return viewHolder;
}
//②onBindViewHolder()用于对RecyclerView子项的数据进行赋值,会在每个子项被滚动到屏幕内的时候执行
@Override
public void onBindViewHolder(final FruitAdapet.ViewHolder holder, int position) {
//从集合中把水果对象拿出来
Fruit fruit = mFruitList.get(position);
//调用holder.ImageView对象设置图片
holder.imageView.setImageResource(fruit.getImageId());
//调用holder.TextView对象设置文字
holder.textView.setText(fruit.getName());
}
//③getItemCount()用于知道RecyclerView有多少子项
@Override
public int getItemCount() {
return mFruitList.size();
}
//创建ViewHolder继承RecyclerView.ViewHolder
class ViewHolder extends RecyclerView.ViewHolder {
ImageView imageView;
TextView textView;
//重写ViewHolder
public ViewHolder(View itemView) {
super(itemView);
//通过View对象的findViewById方法获取到子项布局的控件保存在成员变量当中
imageView = (ImageView) itemView.findViewById(R.id.imageView);
textView = (TextView) itemView.findViewById(R.id.textView);
}
}
}
public class MainActivity extends AppCompatActivity {
private List<Fruit> fruitList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//第三步:定义数据源,单独利用一个方法
fruitData();
//第四步:创建适配器
FruitAdapet adapet = new FruitAdapet(fruitList);
//第五步:找布局控件
RecyclerView recyclerView= (RecyclerView) findViewById(R.id.recyclerView);
//第六步:通过setLayoutManager()为RecylerView设置布局管理器
//设置为垂直方向
//水平方向的参数为:(this,LinearLayoutManager.HORIZONTAL, false);
LinearLayoutManager linearLayoutManager=new LinearLayoutManager(this,
LinearLayoutManager.VERTICAL,false);
recyclerView.setLayoutManager(linearLayoutManager);
//第七步:设置适配器
recyclerView.setAdapter(adapet);
}
public void fruitData() {
//创建一个集合保存数据
fruitList = new ArrayList<>();
//图片我就用了几张,然后让他循环变换而已,小伙伴可以自己增加各式的图片
Fruit apple = new Fruit("苹果", R.drawable.apple);
fruitList.add(apple);
Fruit banana = new Fruit("香蕉", R.drawable.banana);
fruitList.add(banana);
Fruit apple1 = new Fruit("苹果", R.drawable.apple);
fruitList.add(apple);
Fruit banana1 = new Fruit("香蕉", R.drawable.banana);
fruitList.add(banana);
Fruit apple2 = new Fruit("苹果", R.drawable.apple);
fruitList.add(apple);
Fruit banana2 = new Fruit("香蕉", R.drawable.banana);
fruitList.add(banana);
Fruit apple3 = new Fruit("苹果", R.drawable.apple);
fruitList.add(apple);
Fruit banana3 = new Fruit("香蕉", R.drawable.banana);
fruitList.add(banana);
Fruit apple4 = new Fruit("苹果", R.drawable.apple);
fruitList.add(apple);
Fruit banana4 = new Fruit("香蕉", R.drawable.banana);
fruitList.add(banana);
}
}
//第一个参数用于指定布局的列数 //第二个参数用于指定布局的排列方向 StaggeredGridLayoutManager layoutManager=new StaggeredGridLayoutManager(3,StaggeredGridLayoutManager.VERTICAL); recyclerView.setLayoutManager(layoutManager);
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有