Java setOnFocusChangeListener更改背景颜色
我试着这样做,当用户在文本视图上聚焦时,背景会改变颜色,然后当它失去焦点时,文本视图会失去焦点颜色。你能帮忙吗Java setOnFocusChangeListener更改背景颜色,java,android,Java,Android,我试着这样做,当用户在文本视图上聚焦时,背景会改变颜色,然后当它失去焦点时,文本视图会失去焦点颜色。你能帮忙吗 TextView tv1=new TextView(this); tv1.setOnFocusChangeListener(new OnFocusChangeListener() { @Override public void onFocusChange(View v, boolean hasFocus) { if(hasFocus){
TextView tv1=new TextView(this);
tv1.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if(hasFocus){
v.setBackgroundColor(Color.RED);
}else{
v.setBackgroundColor(Color.TRANSPARENT);
}
}
});
若要默认textView不可单击且不可聚焦,则需要对其进行设置 试试这个
tv1.setClickable(true);
tv1.setFocusableInTouchMode(true);
您的代码还可以,唯一的问题是第一行新建文本视图(this)不是创建文本视图的最佳方式,请先在xml中创建文本视图,然后从java代码中这样调用它:
EditText tv1 = (EditText) findViewById(R.id.my_textViewId);
代码的其余部分工作得很好
希望有帮助。为什么不使用xml呢?因为它是通过大量文本视图动态添加的,背景颜色不会改变