是否可以自定义Spannable文本? Android的

时间:2012-07-18 15:19:22

标签: android spannable

String aux = getInserzionista(offerta.getIdInserzionista());

    sotto_titolo.setText("Offerta dal " + aux);

    int inizio = 12;
    int fine = 11+aux.length();

    sotto_titolo.setMovementMethod(LinkMovementMethod.getInstance());

    sotto_titolo.setText(sotto_titolo.getText().toString(),BufferType.SPANNABLE);

    Spannable mySpannable = (Spannable) sotto_titolo.getText();

    ClickableSpan myClickableSpan = new ClickableSpan() {
       @Override
       public void onClick(View widget) {

       }
    };

//if i put this, not work
mySpannable.setSpan(new ForegroundColorSpan(Color.RED), inizio, fine, 0);
mySpannable.setSpan(myClickableSpan, inizio, fine + 1,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

The result

但是,如果我这样说:

mySpannable.setSpan(new ForegroundColorSpan(Color.RED), 0, 4, 0);

它有效,因为0到4的文字是彩色的!

The result

所以,我的问题是:

如何更改链接的颜色(蓝色和带下划线的颜色)?

由于

2 个答案:

答案 0 :(得分:1)

因为你在这一行设置了一个静态值4 mySpannable.setSpan(new ForegroundColorSpan(Color.RED),0,4,0);.设置文本长度代替4。

答案 1 :(得分:0)

您是否尝试过使用updateDrawState()?