HashTagHelper
HashTagHelper copied to clipboard
Different ClickListener for plain text and HashTagText
I have a RecyclerView and I need handle different click listener in row: one for row view and one for HashTag text.
I noticed that if I put an Hashtag click listener, row click listener is not consumed (if clicked on plain text).
So, the first fix is set row click listener to TextView: now, if I click on HashTag both listener are consumed (hashtag click listener before than view On click listener).
In order to avoid this behavior I implemented this listener:
public class FooClickListener implements View.OnClickListener,HashTagHelper.OnHashTagClickListener {
FooAdapter.FooListener listener;
FooModel model;
private boolean consumedHashTagClick = false;
public FooClickListener(FooAdapter.FooListener listener, FooModel model) {
this.listener = listener;
this.model = model;
}
@Override
public void onClick(View view) {
if(!consumedHashTagClick) listener.onRowClick(model.text);
consumedHashTagClick = false;
}
@Override
public void onHashTagClicked(String hashTag) {
consumedHashTagClick = true;
listener.onHashtagClick(hashTag);
}
}
Now I can be sure of what listener will be consumed.