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

更多相关文章

  1. Android 中 ListView 常用属性合集
  2. 网络对讲机C#服务器 Android客户端(三) android客户端代码分析
  3. Android 部分属性学习
  4. android_开发_EditText_and_TextView属性
  5. [Android]代码实现ColorStateList及StateListDrawable
  6. Android 完全退出应用程序实现代码

随机推荐

  1. Android之NDK开发
  2. Android中数据存储——ContentProvider存
  3. android升级adt和sdk之后无法识别SDK Loc
  4. Android任务切换方法
  5. Android核心技术——Android入门-威哥_马
  6. Android画板
  7. Android(安卓)开发艺术探索笔记之十 -- A
  8. Android从零开始-Android工程的目录结构
  9. 错误ava.lang.RuntimeException: Unable
  10. 升级Android内置apk版本