public class RecycleAdapter extends RecyclerView.Adapter<RecycleAdapter.ViewHolder> {
private List<String> mData;
public OnItemClickListener itemClickListener;
public interface OnItemClickListener{
void onItemClick(View view,int position);
}
public void setOnItemClickListener(OnItemClickListener itemClickListener) {
this.itemClickListener = itemClickListener;
}
public RecycleAdapter(List<String> mData){
this.mData=mData;
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
//將佈局轉化爲View並傳遞給RecycleView封裝好的ViewHolder
View v=LayoutInflater.from(parent.getContext()).inflate(R.layout.item_recycle,parent,false);
return new ViewHolder(v);
}
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
//建立起ViewHolder中視圖與數據的關聯
holder.textView.setText(mData.get(position)+position);
}
@Override
public int getItemCount() {
return mData.size();
}
public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
public TextView textView;
public ViewHolder(View itemView){
super(itemView);
textView= itemView.findViewById(R.id.tv_content);
textView.setOnClickListener(this);
}
@Override
public void onClick(View view) {
if (itemClickListener!=null){
itemClickListener.onItemClick(view,getPosition());
}
}
}
}
mAdapter.setOnItemClickListener(new RecycleAdapter.OnItemClickListener() {
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
@Override
public void onItemClick(final View view, int position) {
//設置點擊動畫
Toast.makeText(RecycleViewActivity.this,
mData.get(position)+position+"",Toast.LENGTH_SHORT).show();
}
});