當我點擊RecyclerView的任何項目。它會告訴我這個項目的細節。我怎樣才能做到這一點?我已經使用Retrofit庫。我爲這個RecyclerView創建了一個適配器。我已經提到它了。如何在RecyclerView中編寫「onItemClickListener」?
活動:
List<TargetFile> targetfiles=response.body().getTargetfileslist();
Log.d(TAG,"Number of targetfileslist: "+targetfiles.size());
recyclerView.setAdapter(new TargetFileAdapter(targetfiles,R.layout.list_item_targetfile,getApplicationContext())); //RecyclerView
適配器:
public class TargetFileAdapter extends RecyclerView.Adapter<TargetFileAdapter.TargetFileViewHolder> {
private List<TargetFile> targetfiles;
private int rowLayout;
private Context context;
public TargetFileAdapter(List<TargetFile> targetfiles, int rowLayout, Context context) {
this.targetfiles = targetfiles;
this.rowLayout = rowLayout;
this.context = context;
}
public static class TargetFileViewHolder extends RecyclerView.ViewHolder{
LinearLayout targetFilesLayout;
TextView fileno,partyname,mobile,address;
public TargetFileViewHolder(View v){
super(v);
targetFilesLayout=(LinearLayout)v.findViewById(R.id.targetfile_layout);
fileno=(TextView)v.findViewById(R.id.fileno);
partyname=(TextView)v.findViewById(R.id.partyname);
address=(TextView)v.findViewById(R.id.adrs);
}
}
@Override
public TargetFileAdapter.TargetFileViewHolder onCreateViewHolder(ViewGroup parent, int viewType){
View view= LayoutInflater.from(parent.getContext()).inflate(rowLayout,parent,false);
return new TargetFileViewHolder(view);
}
@Override
public void onBindViewHolder(TargetFileViewHolder holder,final int position){
holder.fileno.setText(targetfiles.get(position).getFileno());
holder.partyname.setText(targetfiles.get(position).getPartyname());
holder.address.setText(targetfiles.get(position).getAddress());
}
@Override
public int getItemCount() {
return targetfiles.size();
}
}
使'TargetFileViewHolder'實現'OnClickListener'並呼籲'setOnClickListener'在'TargetFileViewHolder'構造 – pskink
您可以在'RecyclerView'創建'OnItemClickListener'但如果你可以用'ListView'度日,它已經有一個內置的。 –