我创建了这样的按钮:
Button button = new Button(this);
button.setText("2012");
button.setBackgroundColor(Color.TRANSPARENT);
button.setOnClickListener(mCorkyListener);
layout.addView(dateButton);
点击列表器我有这个方法。在这里,我想更改按钮文字颜色。 Bu View没有这个方法
private OnClickListener mCorkyListener = new OnClickListener() {
public void onClick(View v) {
// do something when the button is clicked
//v.setBackgroundColor(Color.RED);
//so how to change pressed button text color ?
//v.setTextColor(colors);
}
};
不会只有一个按钮。会有很多这些,我需要在按下按钮时按钮文本颜色。
答案 0 :(得分:1)
我知道你问过改变文字的颜色,其他人都已经很好地覆盖了它,但你也可以改变按钮颜色本身(我发现它比文本颜色变化更明显:p)...
import android.graphics.PorterDuff;
要将其设置为绿色(假设您以标准灰色按钮开头):
aButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
Button aButton = (Button) view.findViewById(R.id.abutton);
aButton.getBackground().setColorFilter(0xFF00FF00, PorterDuff.Mode.MULTIPLY);
}
}
答案 1 :(得分:0)
button.setTextColor(Color.WHITE);
这会改变按钮的文字颜色。点击它时你想按一下按钮吗?
答案 2 :(得分:0)
执行此操作的最佳方法不是以编程方式(使用selector),但如果您想以编程方式执行此操作,则可以将其强制转换为Button
,然后更改颜色。
public void onClick(View v) {
Button b = (Button) findViewById(v.getId());
b.setBackgroundColor(Color.RED)l
}
答案 3 :(得分:0)
private OnClickListener mCorkyListener = new OnClickListener() {
public void onClick(View v) {
Button button = (Button)v;
button.setTextColor(Color.RED);
}
};
答案 4 :(得分:0)
如果您有兴趣使用onClick(View v)
的视图,那么只需将其投射到按钮
public void onClick(View v) {
if(v instanceof Button){
((Button)v).setTextColor(Color.WHITE);
}
}