Skip to content

Different ClickListener for plain text and HashTagText #14

@chemickypes

Description

@chemickypes

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions