android屏蔽长按 网址的Textview跳转访问网页
来源:互联网 发布:欢呼吧赛事数据 编辑:程序博客网 时间:2024/05/21 22:51
比如我们的Textview里面的内容是网址 http;//www.baidu.com,然后我们设置了textview的属性android:autoLink="web",这样之后,我们点击textview系统会自动打开浏览器,
然后有个需求是长按textview弹出对话框。然后我就写长按监听事件
textview.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
//TODO 弹出对话框
return false;
}
});
这样之写之后,长按textview你会发现系统会弹出对话框,然后也会自动打开连接浏览器,好像2个不会冲突的样子。
1、这个时候是tv自己定义了onclicklistener事件,我就把setOnLongClickListener里面的返回值改为true,让用户长按之后,不要触发tv的单机事件,但是这样并没有效果,还是会弹出对话框,并且跳转打开浏览器访问百度。
2、后面问别人说可以用clickablespan,我试了下,发现这个是对html标记的去获取的,加入一段对话中用链接,好像并没有效果,没有html标记获取不到网址,也可能是自己没有研究透彻,这种方法放弃了,后面还想截取字符串中的url来着
3、后来,我操作的时候,当我长按不放手textview的时候,发现就弹出对话框来了,没有跳转到网页,当我松手的时候才跳转打开网页的,由于第一点不是onClicklistener触发打卡的,我就猜想事件传递是,setOnTouchListener的down事件---》OnLongClickListener--》setOnTouchListener的up事件--》在是打开网页的事件,如果在up的时候返回true,不让事件传递会不会不打开浏览器呢,
代码如下
boolean upReturn =true;
textview.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
//TODO 打开浏览器
upReturn = true;
return false;
}
});
textview.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction()==MotionEvent.ACTION_UP) {
return upReturn;
}else if (event.getAction()==MotionEvent.ACTION_DOWN) {
upReturn = false;
}
return false;
}
});
好了,到这里发现问题解决了,单击网址的时候可以跳转打开浏览器访问网络;长按网址不会打开浏览器,仅仅是弹出对话框
- android屏蔽长按 网址的Textview跳转访问网页
- android textview自动识别网址,点击长按选择文本
- 安卓5.1 TextView屏蔽长按复制粘贴
- android中如何屏蔽长按menu出现的输入法
- android中如何屏蔽长按menu出现的输入法
- Android textView控件自动识别电话号码,网址,邮箱,点击自动跳转到相应的功能
- android:网页使用网址访问activity
- TextView识别网址点击跳转
- JS屏蔽Backspace跳转网页
- 微信屏蔽网页跳转到app store的解决办法
- Android TextView长按复制文本
- android textView实现长按复制
- Fragment点击Textview的超链接跳转网页报错
- android中屏蔽长按menu键弹出输入法的修改方法
- android EditText 屏蔽长按弹出剪切 复制 全选菜单 的解决办法
- TextView的内部链接支持长按
- Android中如何屏蔽长按MENU(菜单)键
- Android中如何屏蔽长按MENU(菜单)键
- source示例
- Java数据类型
- CocoaPods的安装使用
- 出于学习的目的,写了个桌面右键菜单
- leetcode 38. Count and Say
- android屏蔽长按 网址的Textview跳转访问网页
- JTA jdbc处理 事务
- 在Ubuntu下安装Python
- 175.Which two statements are true regarding savepoints? (Choose two.)
- 解决代理服务器拒绝连接或者连接失败的方法
- 4.1 最大子数组问题(分治法)-NlogN
- iOS 证书(纯属个人笔记,很乱,不易参考,只是为了简洁)
- 根据二叉树的先序和中序序列画出二叉树的方法
- 大型网站架构学习笔记