Я использую DataBinding
для RecyclerView
в приложении. Я установил OnClickListener
для CardView
, используя привязку данных. Я не могу получить позицию CardView, по какой карте щелкают.
Это мой Adapter
class public class QueueAdapter extends RecyclerView.Adapter<QueueAdapter.ViewHolder> implements ClickCard {
private ArrayList<CurrentStatusEntry> originalList;
Context context;
public QueueAdapter(ArrayList<CurrentStatusEntry> originalList, Context context) {
this.originalList = originalList;
this.context = context;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
QueueCardBinding binding= DataBindingUtil.inflate(LayoutInflater.from(parent.getContext()),R.layout.queue_card,parent,false);
ViewHolder vh=new ViewHolder(binding);
return vh;
}
@Override
public void onBindViewHolder( ViewHolder holder, final int position) {
CurrentStatusEntry entry=originalList.get(position);
holder.qBinding.setQueue(entry);
holder.qBinding.setClickHandler(this);
}
@Override
public int getItemCount() {
return originalList.size();
}
@Override
public void cardClicked(CurrentStatusEntry e) {
Toast.makeText(context,e.getName()+" "+e.getPeople(),Toast.LENGTH_SHORT).show();
}
public class ViewHolder extends RecyclerView.ViewHolder {
QueueCardBinding qBinding;
private ViewHolder(QueueCardBinding itemView) {
super(itemView.getRoot());
this.qBinding=itemView;
}
}
}
Это мой Activity
public class MainActivity extends AppCompatActivity {
ActivityMainBinding activityMainBinding;
QueueAdapter adapter;
ArrayList<CurrentStatusEntry> entries=new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
activityMainBinding= DataBindingUtil.setContentView(this,R.layout.activity_main);
activityMainBinding.queue.setLayoutManager(new LinearLayoutManager(this));
activityMainBinding.queue.setHasFixedSize(true);
}
Какие изменения необходимо внести, чтобы щелкнуть по текущей карте?