如何在按下时以编程方式更改按钮文本颜色?

时间:2012-05-08 06:32:07

标签: java android

我创建了这样的按钮:

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

不会只有一个按钮。会有很多这些,我需要在按下按钮时按钮文本颜色。

5 个答案:

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