У меня есть RecyclerView, чтобы показать мне некоторые элементы ArrayList.У меня есть OnClick для этого RecyclerView, но мне нужно положение этого элемента в RecyclerView.
Это мой адаптер ReciclerView:
public class MainAdapter extends RecyclerView.Adapter<MainAdapter.ViewHolder> implements View.OnClickListener {
private ArrayList<MyList> myList;
Context context;
public MainAdapter(ArrayList<MyList> myList, Context context) {
this.myList = myList;
this.context = context;
}
@NonNull
@Override
public MainAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.row, parent, false);
ViewHolder vh = new ViewHolder(v);
vh.title.setOnClickListener(this);
vh.title.setTag(viewType);
return vh;
}
@Override
public void onBindViewHolder(MainAdapter.ViewHolder holder, int position) {
holder.title.setText(myList.get(position).getTitle()); //Function getTitle is related to ArrayList<MyList>
}
@Override
public int getItemCount() {
return myList.size();
}
public class ViewHolder extends RecyclerView.ViewHolder {
public TextView title;
public ViewHolder(@NonNull View itemView) {
super(itemView);
title = (TextView) itemView.findViewById(R.id.title);
}
}
@Override
public void onClick(View v) {
int itemPosition = (int) v.getTag();
switch (v.getId())
{
case R.id.title:
Toast.makeText(context, itemPosition, Toast.LENGTH_SHORT).show();
//itemPosition is always 0 and I don't know why
break;
}
}
}
Я использовал тост, чтобы убедиться, что я 'Однако, я получаю точную позицию, независимо от того, на какой элемент я нажимаю, он всегда дает мне позицию 0.
Спасибо за вашу помощь!