How to get rid of the underline in a Spannable String with a Clickable Object?

后端 未结 10 2015
陌清茗
陌清茗 2021-02-03 16:44

I have a Spannable Object with a Clickable Object set to it. When the Spannable String is displayed in the TextView it has bl

10条回答
  •  孤城傲影
    2021-02-03 17:31

    Override updateDrawState method of ClickableSpan class

    String mystring =" Hello";
    SpannableString ss= new SpannableString(mystring);
    ss.setSpan(new MyClickableSpan(mystring), 0, ss.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  
    
    class MyClickableSpan extends ClickableSpan{// extend ClickableSpan     
    
    String clicked;
    public MyClickableSpan(String string) {
        // TODO Auto-generated constructor stub
    super();
    clicked =string;
    }
    
    public void onClick(View tv) {
    
       Toast.makeText(MainActivity.this,clicked ,
            Toast.LENGTH_SHORT).show();
    }
    
    public void updateDrawState(TextPaint ds) {// override updateDrawState
       ds.setUnderlineText(false); // set to false to remove underline
    }
    

    For changing color of spannable String

      SpannableString    ss = new SpannableString("android Stack Overflow");
    
      ForegroundColorSpan fcs=newForegroundColorSpan(Color.parseColor("#01579B"));
      ss.setSpan(fcs, 8,13, Spannable.SPAN_INCLUSIVE_INCLUSIVE);
    

提交回复
热议问题