Android: ClickableSpan in clickable TextView

后端 未结 7 1749
借酒劲吻你
借酒劲吻你 2020-11-27 02:53

I have a textview that can contain clickable links. When one of this links is clicked, I want to start an activity. This works fine, but it should also be possible to click

7条回答
  •  渐次进展
    2020-11-27 03:09

    The code is work for me and that is from source code of LinkMovementMethod

    tv.setOnTouchListener(new View.OnTouchListener() {
                @Override
                public boolean onTouch(View v, MotionEvent event) {
                    TextView tv = (TextView) v;
                    if (event.action == MotionEvent.ACTION_UP) {
                        int x = (int) event.getX();
                        int y = (int) event.getY();
    
                        Layout layout = tv.getLayout();
                        int line = layout.getLineForVertical(y);
                        int off = layout.getOffsetForHorizontal(line, x);
    
                        ClickableSpan[] link = contentSpan.getSpans(off, off, ClickableSpan.class);
    
                        if (link.length != 0) {
                            link[0].onClick(tv);
                        } else {
                           //do other click
                        }
                    }
                    return true;
                }
            });
    

提交回复
热议问题