Multiple onclicklistener for each word of a string in android text view

2 answers
TextView textView= (TextView)view.findViewById(R.id.textViewAboutUs);

SpannableString ss = new SpannableString("Your String");

ClickableSpan clickableSpan = new ClickableSpan() {
    @Override
    public void onClick(View textView) {
        //Do whatever

    }
};

ss.setSpan(clickableSpan, starting_position, end_position, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //spanned string, for multiple string define multiple ss.setSpan

textView.setText(ss);
textView.setMovementMethod(LinkMovementMethod.getInstance());
0
source

This can help, which explains the creation of tags, for example, in Rss Feed Apps

https://professorneurus.wordpress.com/2013/10/23/adding-multiple-clicking-regions-to-an-android-textview/

private void makeTagLinks(final String text, final TextView tv) {
        if (text == null || tv == null) {
            return;
        }
        final SpannableString ss = new SpannableString(text);
        final List items = Arrays.asList(text.split("\\s*,\\s"))
        int start = 0, end;
        for (final String item : items) {
            end = start + item.length();
            if (start < end) {
                ss.setSpan(new MyClickableSpan(item), start, end, 0);
            }
            start += item.length() + 2;//comma and space in the original text ;)
        }
        tv.setMovementMethod(LinkMovementMethod.getInstance());
        tv.setText(ss, TextView.BufferType.SPANNABLE);
    }
0
source

Source: https://habr.com/ru/post/1588989/


All Articles