我正在尝试用跨度替换从Editable返回的getText()的一部分。

我已经尝试过getText().replace(),但这仅适用于CharSequences

我尝试执行此操作的原因是,我可以依次突出显示EditText的各个部分(经过一小段延迟),而不是遍历并突出显示整个EditText(对于大文件可能会很慢)。

有人知道我该怎么做吗?

最佳答案

这个最小尺寸的示例使单词“first”变大:

public class SpanTest extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        String dispStr = "I'm the first line\nI'm the second line";
        TextView tv = (TextView) findViewById(R.id.textView1);
        int startSpan = dispStr.indexOf("first");
        int endSpan = dispStr.indexOf("line");
        Spannable spanRange = new SpannableString(dispStr);
        TextAppearanceSpan tas = new TextAppearanceSpan(this, android.R.style.TextAppearance_Large);
        spanRange.setSpan(tas, startSpan, endSpan, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
        tv.setText(spanRange);
    }
}

您可以根据需要进行调整

10-06 13:22