Làm cách nào để có thể nhận được vị trí của mục được nhấp trong hàng RecyclerView
và hơn là có ý định thực hiện một hoạt động theo phương pháp onClick
? Đây là bộ chuyển đổi của tôi:RecyclerView: nhận vị trí và chuyển sang hoạt động
public class SergejAdapter extends RecyclerView.Adapter<SergejAdapter.MyViewHolder>{
private LayoutInflater inflater;
List<Information> data= Collections.emptyList();
public SergejAdapter(Context context, List<Information> data){
inflater = LayoutInflater.from(context);
this.data=data;
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = inflater.inflate(R.layout.navigation_drawer_custom_row,parent,false);
MyViewHolder holder= new MyViewHolder(view);
return holder;
}
@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
Information current=data.get(position);
holder.title.setText(current.title);
}
@Override
public int getItemCount() {
return data.size();
}
class MyViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener{
TextView title;
ImageView icon;
public MyViewHolder(View itemView){
super(itemView);
title= (TextView) itemView.findViewById(R.id.listText);
icon = (ImageView) itemView.findViewById(R.id.listIcon);
icon.setOnClickListener(this);
}
@Override
public void onClick(View v) {
Context context = itemView.getContext();
Intent intent = new Intent(context, Ernaehrung.class);
context.startActivity(intent);
}
}
Ở đây tôi chỉ có một onClick
khi một trong những hình ảnh được nhấp, nhưng mỗi hình ảnh có ý định tương tự.
Kiểm tra bài này ra: http://stackoverflow.com/questions/26830505/create-a-listview-with-selectable-rows-change-background-color -loại danh sách-hàng. Nó kết hợp một số những điều này vào nó –
getPosition() không được chấp nhận. Bạn phải sử dụng getLayoutPosition() hoặc getAdapterPosition(). Để tham khảo https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ViewHolder.html –