如何通过编程设置焦点/悬停按钮颜色?

时间:2019-02-07 15:00:39

标签: java android

我使用此代码生成一些按钮:

public void addButton(int channel, int start, int length, String texte)
{
    RelativeLayout.LayoutParams lprams = newRelativeLayout.LayoutParams(
            RelativeLayout.LayoutParams.WRAP_CONTENT,
            RelativeLayout.LayoutParams.WRAP_CONTENT);

    int top = MARGE_SUPERIEUR + HAUTEUR_LIGNE * channel;
    int left = MARGE_GAUCHE + PIXELMINUTE * start;


    lprams.setMargins(left,top,0,0);

    Button Button = new Button(this.context);
    Button.setText(texte);
    Button.setMaxHeight(10);
    Button.setTextSize(10);
    Button.setLayoutParams(lprams);
    Button.setWidth(length*PIXELMINUTE);

    rLayout.addView(Button);

    Button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Log.d("Clicked", "Clicked" + channel + start);
        }
    });

}

它工作正常,但是当我聚焦/悬停这些按钮之一时,我想更改颜色。 有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您可以利用onFocusChangeListener()收听onFocus()

btn.setOnFocusChangeListener(new OnFocusChangeListener() {
    @Override
    public void onFocusChange(View v, boolean hasFocus) {
        // TODO Auto-generated method stub
        if (hasFocus) {
            //Toast line...
        }
    }

});

用于更改按钮颜色:

btn.setBackgroundColor(Color.WHITE); btn.setTextColor(Color.BLACK);