0

我创建这样的按钮:

Button button = new Button(this); 
button.setText("2012");
button.setBackgroundColor(Color.TRANSPARENT);
button.setOnClickListener(mCorkyListener);
layout.addView(dateButton);

在点击listiner上我有这个方法。在这里,我想更改按钮文本颜色。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);
        }
    };

不会只有一个按钮。其中会有很多,我需要在按下按钮时更改文本颜色。

4

5 回答 5

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);
    }
}
于 2012-05-08T06:45:22.123 回答
0
button.setTextColor(Color.WHITE);

这将改变按钮的文本颜色。你想在点击按钮时给按钮一个按下效果吗?

于 2012-05-08T06:35:56.857 回答
0

最好的方法不是以编程方式(使用selector),但如果您想以编程方式进行,您可以将其转换为Button然后更改颜色。

public void onClick(View v) {
    Button b = (Button) findViewById(v.getId());
    b.setBackgroundColor(Color.RED)l
}
于 2012-05-08T06:36:26.467 回答
0
 private OnClickListener mCorkyListener = new OnClickListener() {
    public void onClick(View v) {          
     Button button = (Button)v;
     button.setTextColor(Color.RED);
        }
    };
于 2012-05-08T06:37:59.710 回答
0

如果您有兴趣使用 ViewonClick(View v)则只需将其转换为 Button

     public void onClick(View v) {
        if(v instanceof Button){
              ((Button)v).setTextColor(Color.WHITE);
           }
     }
于 2012-05-08T06:38:26.123 回答