Android 自动识别TextView或者EditView里的url并在自己的应用程序里打开
来源:互联网 发布:沉迷网络危害英语作文 编辑:程序博客网 时间:2024/05/01 05:07
Textview有自己的属性 android:autoLink="web",设置这个属性,Android可以帮我们自动识别网址,点击就可以打开,但是这样是跳转的默认浏览器,我们希望在自己的应用程序里打开。这时候我们需要用到Linkify。
private static final String SCHEMA ="com.youku.paike://message_private_url"; private static final String PARAM_UID ="uid";
private void extractUrl2Link(TextView v) {Pattern wikiWordMatcher = Pattern.compile("(((http\\:\\/\\/)|(https\\:\\/\\/)|(www\\.))[a-zA-Z0-9_\\.]+)");String mentionsScheme = String.format("%s/?%s=",SCHEMA, PARAM_UID);Linkify.addLinks(v, wikiWordMatcher, mentionsScheme);}如上代码是我们对TextView的处理,其中Pattern是用来判别Uri的,这里甄别http、https、www开头的uri。
然后我们另外写一个Activity来响应textview的点击事件。
在AndroidManifest.xml里对这个Activity进行注册。代码如下:
<activity android:name="MentionsActivity">
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:scheme="com.youku.paike" android:host="message_private_url"/>
</intent-filter>
</activity>
然后在这个Activity对传过来的Uri进行处理。代码如下:
private static final String SCHEMA ="com.youku.paike://message_private_url";private static final String PARAM_UID ="uid";private static final Uri PROFILE_URI = Uri.parse(SCHEMA);
private void extractUidFromUri() {Uri uri = getIntent().getData();if (uri !=null && PROFILE_URI.getScheme().equals(uri.getScheme())) {uid = uri.getQueryParameter(PARAM_UID); }if(uid.indexOf("www") == 0){uid = "http://"+uid;}else if(uid.indexOf("https") == 0){String bUid = uid.substring(5, uid.length());uid = "http"+bUid;}}uid就是我们获取的uri地址,这时候我们根据网络地址通过WebView就可以获取了。
下面是CSDN上的一个demo。
http://download.csdn.net/detail/liuhanhan512/5441679
- Android 自动识别TextView或者EditView里的url并在自己的应用程序里打开
- 在打开方式里添加新的应用程序
- Android在一个TextView里显示不同样式的字体
- Android在一个TextView里显示不同样式的字体
- android 在url里传输汉字的方法
- android 应用程序不出现在最近打开程序列表里
- android editview和textview一致的表现
- 如何在ViewController里调用app delegate里自己写的的方法或者系统的方法
- 在应用程序里获取Android控件的高度
- 在MAC系统的eclipse里打开android sdk manager
- Android 怎样在xml里打开其他xml的layout
- 打开E盘快捷键,或者在我的电脑里快速找到文件的快捷键
- 在Android程序里显示自己的图片
- 在Android里添加自己的log函数
- 在Android里添加自己的log函数
- 自动识别HTML代码里的图片链接,并下载到服务器的指定目录源码
- 在网页里打开本地的驱动器
- 不让自己的应用程序在桌面的图标列表里启动显示的方法
- Unofficial Windows Binaries for Python Extension Packages
- java中各进制之间的转换
- Office 365初体验
- python 变量、json数据互转
- 一个乞丐的故事
- Android 自动识别TextView或者EditView里的url并在自己的应用程序里打开
- Java线程同步锁的选择
- NoSQL相关的新闻与技术
- system.img 解压和压缩
- x86 PSW 图解
- 数据库系统概述
- mysql命令行登陆
- JAVA之URL
- 正则表达式符号模式