Android开发:如何用Spannable替换EditText的一部分

Ale*_*eAP 6 android replace spannablestring spannable

我正在尝试用span来替换从getText()返回的可编辑部分.

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

我试图这样做的原因是我可以一个接一个地突出显示EditText的部分(经过一小段延迟),而不是通过并突出显示整个EditText(对于大文件来说可能很慢).

有没有人知道我将如何做到这一点?

Nic*_*ckT 7

这个最小尺寸的例子使"第一个"这个词很大:

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);
    }
}
Run Code Online (Sandbox Code Playgroud)

您可以根据自己的需求进行调整