当用户在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应用程序),那会好得多:
有人对如何将背景颜色仅应用于文本(而不是整个EditText视图)有任何建议吗?
感谢。
答案 0 :(得分:8)
您可以使用BackgroundColorSpan
来实现您想要的效果。您可以在此处找到更多信息:
http://developer.android.com/reference/android/text/style/BackgroundColorSpan.html
要使用跨度,您需要使用SpannableString
构建SpannableStringBuilder
:
http://developer.android.com/reference/android/text/SpannableStringBuilder.html