我使用此代码生成一些按钮:
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);
}
});
}
它工作正常,但是当我聚焦/悬停这些按钮之一时,我想更改颜色。 有什么想法吗?
答案 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);