// 先加载item布局,然后创建ViewHolder实例, @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType){ View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.fruit_item, parent, false); ViewHolder holder = new ViewHolder(view); return holder; }
// 对item进行赋值,会在每个子项被滚动到屏幕内的时候执行,使用position得到当前item实例,将数据灌入ViewHolder的布局中 @Override publicvoidonBindViewHolder(ViewHolder holder, int position){ Fruit fruit = mFruitList.get(position); holder.fruitImage.setImageResource(fruit.getImageId()); holder.fruitName.setText(fruit.getName()); }
publicclassMainActivityextendsAppCompatActivity{ private List<Fruit> fruitList = new ArrayList<>();
@Override protectedvoidonCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initFruits(); // 初始化水果数据 RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recycler_view); // 获取RecyclerView实例 LinearLayoutManager layoutManager = new LinearLayoutManager(this); // 创建layoutManager对象, recyclerView.setLayoutManager(layoutManager); // 指定布局方式 FruitAdapter adapter = new FruitAdapter(fruitList); // list数据传到适配器中 recyclerView.setAdapter(adapter); // 完成适配器设置 } // mock一个列表 privatevoidinitFruits(){ for (int i = 0; i < 100; i++) { Fruit apple = new Fruit("Apple", R.drawable.ic_accessibility_black_24dp); fruitList.add(apple); Fruit banana = new Fruit("Banana", R.drawable.ic_accessibility_black_24dp); fruitList.add(banana); Fruit orange = new Fruit("Orange", R.drawable.ic_accessibility_black_24dp); fruitList.add(orange); Fruit watermelon = new Fruit("Watermelon", R.drawable.ic_accessibility_black_24dp); fruitList.add(watermelon); Fruit pear = new Fruit("Pear", R.drawable.ic_accessibility_black_24dp); fruitList.add(pear); Fruit grape = new Fruit("Grape", R.drawable.ic_accessibility_black_24dp); fruitList.add(grape); Fruit pineapple = new Fruit("Pineapple", R.drawable.ic_accessibility_black_24dp); fruitList.add(pineapple); Fruit strawberry = new Fruit("Strawberry", R.drawable.ic_accessibility_black_24dp); fruitList.add(strawberry); Fruit cherry = new Fruit("Cherry", R.drawable.ic_accessibility_black_24dp); fruitList.add(cherry); Fruit mango = new Fruit("Mango", R.drawable.ic_accessibility_black_24dp); fruitList.add(mango); } } }
publicclassMainActivityextendsAppCompatActivity{ private List<Fruit> fruitList = new ArrayList<>();
@Override protectedvoidonCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initFruits(); // 初始化水果数据 RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recycler_view); // 获取RecyclerView实例 StaggeredGridLayoutManager layoutManager = new StaggeredGridLayoutManager(3, StaggeredGridLayoutManager.VERTICAL); //三列垂直布局的瀑布流 recyclerView.setLayoutManager(layoutManager); // 指定布局方式 FruitAdapter adapter = new FruitAdapter(fruitList); // list数据传到适配器中 recyclerView.setAdapter(adapter); // 完成适配器设置 } // mock一个列表 privatevoidinitFruits(){ for (int i = 0; i < 100; i++) { Fruit apple = new Fruit(getRandomLengthName("Apple"), R.drawable.ic_accessibility_black_24dp); fruitList.add(apple); Fruit banana = new Fruit(getRandomLengthName("Banana"), R.drawable.ic_accessibility_black_24dp); fruitList.add(banana); Fruit orange = new Fruit(getRandomLengthName("Orange"), R.drawable.ic_accessibility_black_24dp); fruitList.add(orange); Fruit watermelon = new Fruit(getRandomLengthName("Watermelon"), R.drawable.ic_accessibility_black_24dp); fruitList.add(watermelon); Fruit pear = new Fruit(getRandomLengthName("Pear"), R.drawable.ic_accessibility_black_24dp); fruitList.add(pear); Fruit grape = new Fruit(getRandomLengthName("Grape"), R.drawable.ic_accessibility_black_24dp); fruitList.add(grape); Fruit pineapple = new Fruit(getRandomLengthName("Pineapple"), R.drawable.ic_accessibility_black_24dp); fruitList.add(pineapple); Fruit strawberry = new Fruit(getRandomLengthName("Strawberry"), R.drawable.ic_accessibility_black_24dp); fruitList.add(strawberry); Fruit cherry = new Fruit(getRandomLengthName("Cherry"), R.drawable.ic_accessibility_black_24dp); fruitList.add(cherry); Fruit mango = new Fruit(getRandomLengthName("Mango"), R.drawable.ic_accessibility_black_24dp); fruitList.add(mango); } }
// 返回随机长度的字符串 private String getRandomLengthName(String name){ Random random = new Random(); int length = random.nextInt(20) + 1; StringBuilder builder = new StringBuilder(); for (int i = 0; i < length; i++) { builder.append(name); } return builder.toString(); }