3

当用户在一个 EditText 中输入信息并移动到下一个 EditText 时,该信息将突出显示,如下所示:

编辑文本背景

代码:

edittext.setOnFocusChangeListener(new OnFocusChangeListener() {

@Override
public void onFocusChange(View v, boolean hasFocus) {
    if (hasFocus) {
        v.setBackgroundColor(Color.WHITE);
        ((EditText) v).setTextColor(Color.BLACK);
    } else {

        //v.setBackgroundColor(Color.LTGRAY); //also works like this
        ((EditText) v).setBackgroundColor(Color.LTGRAY);
        ((EditText) v).setTextColor(Color.BLACK);
    }

   }
});

在这样的方法中调用onCreate它:

edittext = (EditText) findViewById(R.id.editText1);

但是,如果背景颜色只应用于文本本身而不是视图,那就更好了,就像这样(来自 gmail 应用程序):

gmail理想输出

有人对如何将背景颜色仅应用于文本(而不是整个 EditText 视图)有任何建议吗?

谢谢。

4

1 回答 1

8

您可以通过使用BackgroundColorSpan. 您可以在这里找到更多信息:

http://developer.android.com/reference/android/text/style/BackgroundColorSpan.html

要使用跨度,您需要构建一个SpannableString您可以使用 a 执行的操作SpannableStringBuilder

http://developer.android.com/reference/android/text/SpannableStringBuilder.html

于 2013-09-30T17:33:18.093 回答