我有一个问题,我无法在网上找到答案或知道如何找到答案。
我有EditText xml
属性,我做了一个事件监听器
通过更改其下方下划线的颜色来改变此属性。有没有办法从这个EditText
中删除焦点(即用户点击任何其他元素而不是这个元素)来删除我着色的线的突出显示颜色?
在onclick
事件监听器上?这看起来很奇怪,但我希望onclick
的反面像onclickremove
或其他东西。
答案 0 :(得分:3)
您可以使用setOnFocusChangeListener
到EditText。如果失去焦点,请清除滤色镜:
editText.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
editText.getBackground().setColorFilter(color, PorterDuff.Mode.SRC_IN);
}
else{
editText.getBackground().clearColorFilter();
}
}
});
如果您想更改视图颜色,只需在onFocusChange
中添加以下行:
view.setBackgroundColor(Color.parseColor("#ffffff"));
希望这有帮助。
答案 1 :(得分:0)
您需要使用setOnFocusChangedListener
。 hasFocus
确定焦点是移除还是给予视图。它是false
表示用户已离开该字段。
EditText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if(hasFocus == false){
// change the color
}
}
});