setOnFocusChangeListener更改背景颜色

时间:2014-02-18 08:52:24

标签: java android

我试图这样做,当用户专注于文本视图时,背景会改变颜色,然后当它失去焦点时,textview会失去焦点颜色。你能帮忙吗?

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);
        }

    }

});

2 个答案:

答案 0 :(得分:2)

要默认textView不可点击且可对焦,则需要进行设置。

试试这个。

tv1.setClickable(true);
tv1.setFocusableInTouchMode(true);

答案 1 :(得分:0)

你的代码没问题,唯一的问题是第一行新的TextView(this)不是创建TextView的最佳方法,首先在xml中创建它并从你的java代码中调用它像这样:

EditText tv1 = (EditText) findViewById(R.id.my_textViewId);

其余代码效果很好。

希望它有所帮助。