【Java转Android】17

43 阅读1分钟

private List fruitList = new ArrayList<>();

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

initFruits();

RecyclerView recyclerView = findViewById(R.id.recycler);

//横向滚动

/*LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);

linearLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);

recyclerView.setLayoutManager(linearLayoutManager);*/

//瀑布流

StaggeredGridLayoutManager layoutManager = new StaggeredGridLayoutManager(3,StaggeredGridLayoutManager.VERTICAL);

recyclerView.setLayoutManager(layoutManager);

FruitAdapter fruitAdapter = new FruitAdapter(fruitList);

recyclerView.setAdapter(fruitAdapter);

}

private void initFruits() {

for (int i = 0; i < 2; i++) {

Fruit apple = new Fruit(getRandomLengthName("Apple"), R.drawable.apple_pic);

fruitList.add(apple);

Fruit banana = new Fruit(getRandomLengthName("Banana"), R.drawable.banana_pic);

fruitList.add(banana);

Fruit orange = new Fruit(getRandomLengthName("Orange"), R.drawable.orange_pic);

fruitList.add(orange);

Fruit watermelon = new Fruit(getRandomLengthName("Watermelon"), R.drawable.watermelon_pic);

fruitList.add(watermelon);

Fruit pear = new Fruit(getRandomLengthName("Pear"), R.drawable.pear_pic);

fruitList.add(pear);

Fruit grape = new Fruit(getRandomLengthName("Grape"), R.drawable.grape_pic);

fruitList.add(grape);

Fruit pineapple = new Fruit(getRandomLengthName("Pineapple"), R.drawable.pineapple_pic);

fruitList.add(pineapple);

Fruit strawberry = new Fruit(getRandomLengthName("Strawberry"), R.drawable.strawberry_pic);

fruitList.add(strawberry);

Fruit cherry = new Fruit(getRandomLengthName("Cherry"), R.drawable.cherry_pic);

fruitList.add(cherry);

Fruit mango = new Fruit(getRandomLengthName("Mango"), R.drawable.mango_pic);

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();

}

}

FruitAdapter.java

public class FruitAdapter extends RecyclerView.Adapter<FruitAdapter.ViewHolder> {

private List fruitList;

View fruitView;

public FruitAdapter(List fruitList) {

this.fruitList = fruitList;

}

//注册点击事件

@NonNull

@Override

public ViewHolder onCreateViewHolder(@NonNull final ViewGroup parent, int viewType) {

View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.fruit_item,parent,false);

final ViewHolder viewHolder = new ViewHolder(view);

viewHolder.fruitView.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View view) {

int position = viewHolder.getAdapterPosition();

Fruit fruit = fruitList.get(position);

Toast.makeText(view.getContext(), "你点击了视图"+fruit.getName(), Toast.LENGTH_SHORT).show();

}

});

viewHolder.fruitImage.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View view) {

int position = viewHolder.getAdapterPosition();

Fruit fruit = fruitList.get(position);

Toast.makeText(view.getContext(), "你点击了图片"+fruit.getName(), Toast.LENGTH_SHORT).show();

}

});

return viewHolder;

}

@Override

public void onBindViewHolder(@NonNull ViewHolder holder, int position) {

Fruit fruit = fruitList.get(position);

holder.fruitImage.setImageResource(fruit.getImageId());

holder.fruitName.setText(fruit.getName());

}