直接上代码


package com.lhl.qsmm.maskguidetest;import android.os.Bundle;import android.support.v4.content.ContextCompat;import android.support.v7.app.AppCompatActivity;import android.text.Spannable;import android.text.SpannableString;import android.text.SpannableStringBuilder;import android.text.TextPaint;import android.text.method.LinkMovementMethod;import android.text.style.ClickableSpan;import android.text.style.ForegroundColorSpan;import android.view.View;import android.widget.TextView;import android.widget.Toast;public class MainActivity extends AppCompatActivity {    private TextView mTextView;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        mTextView = (TextView) findViewById(R.id.text);        SpannableStringBuilder builder = new SpannableStringBuilder();        String s1 = "你好";        SpannableString sp1 = new SpannableString(s1);        sp1.setSpan(new Clickable(new View.OnClickListener() {            @Override            public void onClick(View v) {                //在这里添加点击事件            }        }),0,s1.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);        ForegroundColorSpan fcs1 = new ForegroundColorSpan(ContextCompat.getColor(this,R.color.borline));        sp1.setSpan(fcs1,0,s1.length(),Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);//设置字体的颜色        builder.append(sp1);//添加        String s2 = "安卓";        SpannableString sp2 = new SpannableString(s2);        sp2.setSpan(new Clickable(new View.OnClickListener() {            @Override            public void onClick(View v) {                //在这里添加点击事件                Toast.makeText(MainActivity.this, "点击", Toast.LENGTH_SHORT).show();            }        }),0,s2.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);        ForegroundColorSpan fcs2 = new ForegroundColorSpan(ContextCompat.getColor(this,R.color.brightred));        sp1.setSpan(fcs2,0,s1.length(),Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);//设置字体的颜色        builder.append(sp2);        mTextView.setText(builder);        mTextView.setMovementMethod(LinkMovementMethod.getInstance());//加上这句话才有效果        mTextView.setHighlightColor(ContextCompat.getColor(this,R.color.touming));//去掉点击后的背景颜色为透明    }    class Clickable extends ClickableSpan implements View.OnClickListener {        private final View.OnClickListener mListener;        public Clickable(View.OnClickListener mListener) {            this.mListener = mListener;        }        @Override        public void onClick(View v) {            mListener.onClick(v);        }        @Override        public void updateDrawState(TextPaint ds) {            ds.setColor(ds.linkColor);            ds.setUnderlineText(false);    //去除超链接的下划线        }    }}
结果

更多相关文章

  1. android 输入对话框
  2. Android中的系统栏
  3. 初探Android热修复——tinker接入
  4. Android(安卓)Menu 菜单用法 一看就懂
  5. android 通知栏点击事件及8.0适配
  6. 如何向android程序添加音效或者音频文件
  7. Android内核与主线linux内核的比较(Android对Linux内核的改动你知
  8. Android(安卓)你不知道的调试技巧(Debug操作汇总)
  9. android 中的ListView选中项的背景颜色怎么设置?

随机推荐

  1. Android中的SQLiteOpenHelper类
  2. Android(安卓)Bitmap内存限制
  3. 2.Android(安卓)发布版本图和应用开发特
  4. Android中文API(96)——SoundEffectConstan
  5. 基于TCP和多线程实现无线鼠标键盘-Socket
  6. Android常见错误(http://www.cnblogs.com/
  7. 关于Android(安卓)studio混淆遇到的问题
  8. Android中Preference的使用以及监听事件
  9. Android中使用log4j
  10. Android中数据存储的几种方法