Java 如何以编程方式设置焦点/悬停按钮颜色?

Java 如何以编程方式设置焦点/悬停按钮颜色?,java,android,Java,Android,我使用此代码生成一些按钮: public void addButton(int channel, int start, int length, String texte) { RelativeLayout.LayoutParams lprams = newRelativeLayout.LayoutParams( RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutPa

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

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

}
它工作正常,但我想在聚焦/悬停其中一个按钮时更改颜色。
有什么想法吗?

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

要更改按钮颜色,请执行以下操作:

btn.setBackgroundColor(颜色:白色);
btn.setTextColor(颜色为黑色)

好的,当它没有聚焦时,要反转吗?@Arnaud是的。如果这解决了您的问题,请将其标记为答案,以便它也可以帮助其他人
btn.setOnFocusChangeListener(new OnFocusChangeListener() {
    @Override
    public void onFocusChange(View v, boolean hasFocus) {
        // TODO Auto-generated method stub
        if (hasFocus) {
            //Toast line...
        }
    }

});