这里面涉及两个知识点——超链接和跳转。下面进行逐一讲解:
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);
}
}
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-10-29 06:22:13