Android-RecyclerView 클릭 추가 이벤트
14987 단어 안드로이드 기술
package com.example.test;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import java.util.List;
public class FruitAdapter extends RecyclerView.Adapter<FruitAdapter.ViewHolder> {
private List<Fruit>fruitList;
static class ViewHolder extends RecyclerView.ViewHolder{
View fruitview;//
ImageView fruitImage;
TextView fruitName;
public ViewHolder(View view){
super(view);
fruitview=view;
fruitImage=view.findViewById(R.id.fruit_image);
fruitName=view.findViewById(R.id.fruit_name);
}
}
public FruitAdapter(List<Fruit> fruitLists){
fruitList=fruitLists;
}
@NonNull
@Override// onCreateViewHolder
public ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view= LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.fruit_item,viewGroup,false);
final ViewHolder viewHolder=new ViewHolder(view);
// TextView
viewHolder.fruitName.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int position=viewHolder.getAdapterPosition();//
Fruit fruit=fruitList.get(position);//
Toast.makeText(v.getContext(),fruit.getName()+" ",Toast.LENGTH_SHORT).show();
}
});
// ImageView
viewHolder.fruitImage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int position=viewHolder.getAdapterPosition();//
Fruit fruit=fruitList.get(position);//
Toast.makeText(v.getContext(),fruit.getName()+" ",Toast.LENGTH_SHORT).show();
}
});
return viewHolder;
}
@Override
public void onBindViewHolder(@NonNull ViewHolder viewHolder, int i) {
Fruit fruit=fruitList.get(i);
viewHolder.fruitImage.setImageResource(fruit.getImageId());
viewHolder.fruitName.setText(fruit.getName());
}
@Override
public int getItemCount() {
return fruitList.size();
}
}
로그인 클릭 이벤트에서 우리는 먼저 사용자가 클릭한 위치(position)를 얻은 다음에position에 따라 해당하는 Fruit 실례를 얻는다.