Когда я нажимаю на определенную кнопку, цвет фона кнопки, возможно, изменится, в то время как остальные кнопки остаются в своем цвете по умолчанию. Однако при запуске приложения кнопка не меняет свой цвет, хотя остальная часть логики в коде работает хорошо. Я все еще не могу понять, что случилось. Любая помощь будет оценена. Благодарю.Кнопка Android не меняет цвет при нажатии
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.timer_test);
adult = (Button) findViewById(R.id.btnAdult);
peer = (Button) findViewById(R.id.btnPeer);
material = (Button) findViewById(R.id.btnMaterial);
physical = (Button) findViewById(R.id.btnPhysical);
//Set button disabled, when new activity is turned on
flag.setEnabled(false);
alarm = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
...
OnClickListener codes :
if (textDemo.getText().toString() == "Record") {
View.OnClickListener listener = new View.OnClickListener() {
@Override
public void onClick(View v) {
if (v.equals(physical)) {
// do something
physical.setText("PHYSICAL ON CLICK WORKS");
physicalPrompt = "Yes";
physical.setBackgroundColor(getResources().getColor(R.color.buttonPressed));
adult.setBackgroundResource(R.drawable.button_selector);
peer.setBackgroundResource(R.drawable.button_selector);
material.setBackgroundResource(R.drawable.button_selector);
}
else if (v.equals(material)) {
// do something
material.setText("MATERIAL ON CLICK WORKS");
materials = "Yes";
material.setBackgroundColor(getResources().getColor(R.color.buttonPressed));
peer.setBackgroundResource(R.drawable.button_selector);
adult.setBackgroundResource(R.drawable.button_selector);
physical.setBackgroundResource(R.drawable.button_selector);
}
else if (v.equals(peer)){
peer.setText("PEER ON CLICK WORKS");
peers = "Yes";
peer.setBackgroundColor(getResources().getColor(R.color.buttonPressed));
physical.setBackgroundResource(R.drawable.button_selector);
adult.setBackgroundResource(R.drawable.button_selector);
material.setBackgroundResource(R.drawable.button_selector);
}
else if (v.equals(adult)){
adult.setText("ADULT ON CLICK WORKS");
peers = "Yes";
peer.setBackgroundColor(getResources().getColor(R.color.buttonPressed));
physical.setBackgroundResource(R.drawable.button_selector);
adult.setBackgroundResource(R.drawable.button_selector);
material.setBackgroundResource(R.drawable.button_selector);
}
else {
// do something else
textDemo.setText("Error!");
}
}
};
physical.setOnClickListener(listener);
material.setOnClickListener(listener);
peer.setOnClickListener(listener);
adult.setOnClickListener(listener);
}
}
}
В стоимость/colors.xml,
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="buttonNotPressed">#2196F3</color>
<color name="buttonPressed">#1976D2</color>
<!--<color name="colorHighlightFAB">#B6B6B6</color>-->
<color name="ColorPrimary">#E91E63</color>
</resources>
Дополнительные коды:
public class Timer_Test extends ActionBarActivity {
//Declare widgets
Button buttonStart, flag, back, timeButton, adult, peer, material, physical;
TextView timerTextView, tvTest, interval, child, status, id, session,
passName, tvStartTime, textDemo;
Возможно, было бы полезно показать немного больше кода; например, когда объявляются и назначаются переменные кнопки. –
Вы попробовали это - button.setBackgroundResource (R.color.your_color) ;? – Varundroid
и попробуйте переместить этот код - 'physical.setOnClickListener (слушатель); материал.setOnClickListener (слушатель); peer.setOnClickListener (слушатель); adult.setOnClickListener (слушатель); 'к вашему методу onCreate(). – Varundroid