0

Вот пример кода:Слово, покрытое SpannableStringBuilder в строке, становится невидимым. Как это исправить?

String engText = "The story of Sir Walter Raleigh"; 
TextView textView1 = (TextView) findViewById(R.id.textView1); 

textView3.setMovementMethod(LinkMovementMethod.getInstance()); 
textView3.setText(addClickablePart(engText), BufferType.SPANNABLE); 

где

private SpannableStringBuilder addClickablePart(String str) 
{ 
    SpannableStringBuilder ssb = new SpannableStringBuilder(str); 
    ssb.setSpan(new ClickableSpan() { 
      @Override 
      public void onClick(View widget) 
      { 
       Toast.makeText(getApplicationContext(),"tale",Toast.LENGTH_SHORT).show(); 
      } 
    }, 4, 9, 0); 

    return ssb; 
} 

В этом коде при нажатии на слово история, тост выскакивает говоря рассказ. Но вот в чем проблема: В Android версий 4 и выше слово история становится невидимой, в то время как вы можете нажать на пустое (невидимое) пространство, и тост всплывает без проблем.

Как я могу держать слово «истории» видимой или изменить его цвет, так что он остается видимым, пока он будет работать в качестве тоста при постукивании?

ответ

0

Я думаю, что у меня это есть;

после первого setSpan, мне нужно немедленно начать с другого setSpan который меняет цвет одного и того же слова. Вот оно:

ssb.setSpan(new ForegroundColorSpan(Color.RED), 4, 9, 
    Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);