Android textview中某一部分文字变色及点击事件

在开发过程中,可能会遇到某个textview上有一行文字,其中某几个文字颜色不同,并且可点击,还可响应点击事件,附上代码。

  public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    TextView textView = (TextView) findViewById(R.id.text1);
    SpannableStringBuilder spannable = new SpannableStringBuilder("可以点击的");
    spannable.setSpan(new ForegroundColorSpan(Color.RED), 2, 4, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); //这个一定要记得设置,不然点击不生效textView.setMovementMethod(LinkMovementMethod.getInstance());  
    spannable.setSpan(new TextClick(), 2, 4
            , Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    textView.setText(spannable);
    avoidHintColor(textView);
}

private class TextClick extends ClickableSpan {
    @Override
    public void onClick(View widget) {
        Toast.makeText(MainActivity.this, "点击了这个", Toast.LENGTH_SHORT).show();
        //在此处理点击事件                                    
        // Log.e("------->", "点击了");        }    
        @Override public void updateDrawState (TextPaint ds){
            //ds.setColor(ds.linkColor);    
            // ds.setColor()设定的是span超链接的文本颜色
            //       ds.setUnderlineText(true);     
            //   }   
            // }    
            // 点击后的背景颜色(HighLightColor)属于TextView的属性,
            // Android4.0以上默认是淡绿色,低版本的是黄色   
            private void avoidHintColor (View view){
                if (view instanceof TextView) {
                    ((TextView) view).setHighlightColor(getResources().getColor
                            (android.R.color.transparent));
                }
            }
        }
    }
}

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容