TextView怎么设置多个监听?
想要实现一个功能,将一个TextView中的内容读出来,并且对里边的数字添加链接,点击数字可以弹出对话框询问是要发短信还是打电话,目前这一部分已经实现了,但是发现一个问题,就是点击TextView处链接以外的其它区域没有响应了,原本是要跳转到下一个界面的。
请教大神,怎么能给TextView设置多个监听?一个负责监听链接点击事件,另一个监听TextView中除链接之外的其它区域?

4个回答

试了一下下面这段代码,同时都能生效,响应没问题。不冲突

 private void initTextView(){
        SpannableString ss = new SpannableString("text4: Click here to dial the phone.");  
        ss.setSpan(new StyleSpan(Typeface.BOLD), 0, 6,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  
        ss.setSpan(new URLSpan("tel:4158561312"), 13, 17,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  

        TextView t4 = (TextView) findViewById(R.id.tvt_span);  
        t4.setText(ss);  
        t4.setMovementMethod(LinkMovementMethod.getInstance());  
        t4.setOnTouchListener(new View.OnTouchListener() {          
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                // TODO Auto-generated method stub
                System.out.println("OnTouchListener");
                return false;
            }
        });
    }
Dan_ry
Dan_ry 管用了~非常感谢!
大约 5 年之前 回复

设置textview的

setMovementMethod(LinkMovementMethod.getInstance());

Dan_ry
Dan_ry 还是不管用……我只加了这一句,是不是还要加其他的部分?
大约 5 年之前 回复

把textview中的内容设置成Spannable的方式进行。

Dan_ry
Dan_ry 我就是这么写的,但是只有点击链接才有响应,我又试了给整个TextView都设置监听,结果会同时响应——弹出对话框,同时界面跳转……怎么才能让他点击链接时弹出对话框,点击链接以外的文字只跳转到下一界面?大神求解…………
大约 5 年之前 回复

设置TextView的
tv.setMovementMethod(LinkMovementMethod.getInstance());

tv.setOnTouchListener

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问