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呢?因为它是通过大量文本视图动态添加的,背景颜色不会改变