2012-05-08 3 views
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); 
     } 
    }; 

Не было бы только одной кнопки. Было бы много таких, и мне нужно было бы изменить цвет текста при нажатии кнопки.

ответ

0
private OnClickListener mCorkyListener = new OnClickListener() { 
    public void onClick(View v) {   
    Button button = (Button)v; 
    button.setTextColor(Color.RED); 
     } 
    }; 
0
button.setTextColor(Color.WHITE); 

Это изменит цвет текста кнопки.

+0

Моя пресса эффект будет изменен цвет текста – Streetboy

+0

http://www.mkyong.com/android/android-imagebutton-selector- пример/ –

+0

проверить эту ссылку, добавив селектор в качестве фона кнопки, поможет вам это сделать. Но до этого добавьте два ресурса для добавления в селектор. –

0

лучший способ сделать это не программно (с использованием selector), но если вы хотите сделать это программно, вы можете отдать его Button, а затем изменить цвет.

public void onClick(View v) { 
    Button b = (Button) findViewById(v.getId()); 
    b.setBackgroundColor(Color.RED)l 
} 
0

Если вы заинтересованы использовать Вид onClick(View v) затем просто бросить его Баттон

 public void onClick(View v) { 
     if(v instanceof Button){ 
       ((Button)v).setTextColor(Color.WHITE); 
      } 
    } 
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); 
    } 
} 
+0

Спасибо, этот код, но моя идея - сделать доступный текст, а не показывать кнопку, по этой причине мой фон кнопки прозрачен. – Streetboy

+0

Я бы дал +1 для обмена. Хотя ответ не то, что пользователь просил :) –

Смежные вопросы