Android: Handling Clicks On Image View Inside Recycler's View Item Using Touch Framework
I am trying to capture the clicks on ImageView which is enclosed inside the RecyclerView item. I have implemented RecyclerView.OnItemTouchListener and has gesture detector process
Solution 1:
This will solve your problem:
publicclassOnItemClickListenerimplementsView.OnClickListener {
privateint position;
private OnItemClickCallback onItemClickCallback;
publicOnItemClickListener(int position, OnItemClickCallback onItemClickCallback) {
this.position = position;
this.onItemClickCallback = onItemClickCallback;
}
@OverridepublicvoidonClick(View view) {
onItemClickCallback.onItemClicked(view, position);
}
publicinterfaceOnItemClickCallback {
voidonItemClicked(View view, int position);
}
}
Get an instance of 'OnItemClickCallback' interface and put it in your activity or fragment:
private OnItemClickListener.OnItemClickCallbackonItemClickCallback=newOnItemClickListener.OnItemClickCallback() {
@OverridepublicvoidonItemClicked(View view, int position) {
// switch(view.getId()) ...
}
};
Then, pass that callback to your recyclerView:
recyclerView.setAdapter(newSimpleStringRecyclerViewAdapter(Arrays.asList("1", "2", "3"), onItemClickCallback));
Finally, this would be your adapter:
publicclassSimpleStringRecyclerViewAdapterextendsRecyclerView.Adapter<SimpleStringRecyclerViewAdapter.ViewHolder> {
private List<String> mValues;
private OnItemClickListener.OnItemClickCallback onItemClickCallback;
publicSimpleStringRecyclerViewAdapter(List<String> items, OnItemClickListener.OnItemClickCallback onItemClickCallback) {
mValues = items;
this.onItemClickCallback = onItemClickCallback;
}
publicstaticclassViewHolderextendsRecyclerView.ViewHolder {
publicfinal View mView;
publicfinal TextView mTextView;
publicViewHolder(View view) {
super(view);
mView = view;
mTextView = (TextView) view.findViewById(R.id.txt_title);
}
}
@Overridepublic ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
Viewview= LayoutInflater.from(parent.getContext()).inflate(R.layout.list_item, parent, false);
returnnewViewHolder(view);
}
@OverridepublicvoidonBindViewHolder(final ViewHolder holder, finalint position) {
holder.mTextView.setText(mValues.get(position));
holder.mView.setOnClickListener(newOnItemClickListener(position, onItemClickCallback));
holder.mTextView.setOnClickListener(newOnItemClickListener(position, onItemClickCallback));
}
@OverridepublicintgetItemCount() {
return mValues.size();
}
}
Post a Comment for "Android: Handling Clicks On Image View Inside Recycler's View Item Using Touch Framework"