Android 指定字符串添加下划线与改变颜色

                String str = "前往门市前请先确认";
                String changeText="确认";
                SpannableString spanText = new SpannableString(str);
               // int start = str.indexOf(changeText);
               // int end = start + changeText.length();
                int start = 0;
                int end = 0;
                if (str.indexOf(changeText) == -1) {
               // 没有指定字符串的时候不处理,以免找不到数组越界
                } else {
                    start = str.indexOf(changeText);
                    end = start + changeText.length();
                }
                spanText.setSpan(new ClickableSpan() {
                    @Override
                    public void updateDrawState(TextPaint ds) {
                        super.updateDrawState(ds);
                      //设置文件颜色
                        ds.setColor(Color.parseColor("#000000"));      
                      //设置下划线
                        ds.setUnderlineText(true);    
                    }

                    @Override
                    public void onClick(View view) {
                    }
                }, start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
                 //设置点击后的颜色为透明,否则会一直出现高亮
                textView.setHighlightColor(Color.TRANSPARENT);
                textView.setText(spanText);
                textView.setMovementMethod(LinkMovementMethod.getInstance());

 改变指定字符串颜色以及增加下划线,遍历字符串没有找到指定的字符串报数组越界的问题

String index out of range: -1

猜你喜欢

转载自blog.csdn.net/qq_19714505/article/details/119912622