码迷,mamicode.com
首页 > 其他好文 > 详细

超链接跳转

时间:2015-07-28 09:06:59      阅读:149      评论:0      收藏:0      [点我收藏+]

标签:超链接   跳转   

这里面涉及两个知识点——超链接和跳转。下面进行逐一讲解:
1.实现超链接:
1.1形成超链接文本

    public static SpannableString getUserlink(String userName,
            String userId) {
        SpannableString ss = new SpannableString(userName);
        URLSpan urlSpan = new URLSpan("gch://" + userId);
        ss.setSpan(urlSpan, 0, ss.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
        return ss;
    }

1.2将其添加到TextView上面:

        mTVText.setText(getUserlink("guchuanhang", "2010111180"));

1.3给该TextView设置权限

        mTVText.setMovementMethod(LinkMovementMethod.getInstance());

下面是添加超链接页面的完整代码:

package com.example.androidtest;

import android.app.Activity;
import android.os.Bundle;
import android.text.Spannable;
import android.text.SpannableString;
import android.text.SpannableStringBuilder;
import android.text.method.LinkMovementMethod;
import android.text.style.URLSpan;
import android.widget.TextView;

public class FirstActivity extends Activity {
    TextView mTVText;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        mTVText = new TextView(this);
        setContentView(mTVText);
        mTVText.setMovementMethod(LinkMovementMethod.getInstance());
        mTVText.setText(getUserlink("guchuanhang", "2010111180"));
        // mTVText.setText(getZanSequence());

    }

    public static SpannableString getUserlink(String userName,
            String userId) {
        SpannableString ss = new SpannableString(userName);
        URLSpan urlSpan = new URLSpan("gch://" + userId);
        ss.setSpan(urlSpan, 0, ss.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
        return ss;
    }

}

2.实现跳转:
2.1给目标页面添加相应标志(在manifest中声明,类似于“声称,我是维修电脑的,有电脑问题的请找我”)。在目标Activity中添加如何intent

    <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <data android:scheme="gch" >
                </data>
            </intent-filter>

在Android中的intent-filter中,声明,处理“gch://???”的url。
2.2在目标Activity中解析url,获取想要的数据:


import android.app.Activity;
import android.os.Bundle;
import android.text.Spannable;
import android.text.SpannableString;
import android.text.style.URLSpan;
import android.widget.Button;
import android.widget.TextView;

public class SecondActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        TextView show = new TextView(this);
        setContentView(show);
        /**
         * 由于gch://有6个字符组成,所以,截取6位之后的字符串即可
         */
        String urlString = getIntent().getDataString().substring(6);
        show.setText(urlString);
    }

}

版权声明:本文为博主原创文章,未经博主允许不得转载。

超链接跳转

标签:超链接   跳转   

原文地址:http://blog.csdn.net/guchuanhang/article/details/47099579

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!