【问题标题】:is Spannable text customizable? Android可跨文本可定制吗?安卓
【发布时间】:2012-07-18 15:19:21
【问题描述】:
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);

但如果我这样说:

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

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

所以,我的问题是:

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

谢谢

【问题讨论】:

    标签: android spannable


    【解决方案1】:

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

    【讨论】:

    • 我已经解决了 :) 问题是指令的顺序,因为这是正确的 mySpannable.setSpan(myClickableSpan, inizio, fine + 1,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); mySpannable.setSpan(new ForegroundColorSpan(Color.RED), inizio, fine, 0);而不是以前的......但是非常感谢
    【解决方案2】:

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

    【讨论】:

    • 没有针对 ClickableSpan 类型的函数 updateDrawState() :(
    猜你喜欢
    • 2016-04-26
    • 1970-01-01
    • 2011-12-18
    • 1970-01-01
    • 2014-03-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-26
    • 1970-01-01
    相关资源
    最近更新 更多