TextView实现界面跳转功能

1.了解SpannableString

SpannableString其实和String一样,都是一种字符串类型,SpannableString可以直接作为TextView的显示文本,不同的是SpannableString可以通过使用其方法setSpan方法实现字符串各种形式风格的显示,重要的是可以指定设置的区间,也就是为字符串指定下标区间内的子字符串设置格式。使用该命名方式时为了接下来使用setSpan方法做铺垫。

2.了解setSpan方法

SetSpan(Object what, int start, int end, int flags)方法需要用户输入四个参数,what表示设置的格式是什么,可以是前景色、背景色也可以是可点击的文本等等,start表示需要设置格式的子字符串的起始下标,end表示终了下标,flags共有四种属性:
Spanned.SPAN_INCLUSIVE_EXCLUSIVE 从起始下标到终了下标,包括起始下标
Spanned.SPAN_INCLUSIVE_INCLUSIVE 从起始下标到终了下标,同时包括起始下标和终了下标
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE 从起始下标到终了下标,但都不包括起始下标和终了下标
Spanned.SPAN_EXCLUSIVE_INCLUSIVE 从起始下标到终了下标,包括终了下标
SpannableString的setSpan()方法可以同时使用多个,实现多种效果叠加。

3.贴代码ing

public class ScowlViewActivity extends AppCompatActivity {
    @SuppressLint("WrongViewCast")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.scorl_view);
        TextView textView = findViewById(R.id.textView);
        SpannableString ss = new SpannableString("详情页结果如下所示");
        ss.setSpan(new ClickableSpan(){
            @Override
            public  void updateDrawState(TextPaint t){
                super.updateDrawState(t);
                t.setUnderlineText(false); //设置去掉下划线
                t.setColor(Color.BLACK);//设置字体颜色为黑
            }
            @Override
            public void onClick(View widget){
                Intent intent = new Intent(ScowlViewActivity.this,MainActivity.class);//当点击详情页时触发事件函数完成页面跳转
                startActivity(intent);
            }},0,3,Spanned.SPAN_INCLUSIVE_INCLUSIVE);//取出ss参数中第一个到第三个字作为超链接
     //   ss.setSpan(new UnderlineSpan(), 0, 3, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
        ss.setSpan(new BackgroundColorSpan(Color.parseColor("#FFD700")),0,3,Spanned.SPAN_INCLUSIVE_INCLUSIVE);//设置字体背景色为黄色
        textView.setText(ss);
        textView.setMovementMethod(LinkMovementMethod.getInstance());
    }
}

结果如下图所示,忽略其他的TextView,做表格布局的时候测试用的,懒得删了,点击详情页跳转到主页面
TextView实现界面跳转功能_第1张图片

你可能感兴趣的:(Android开发)