Android Button color changing on onClick?
buttoncolor.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true" android:state_pressed="true"
android:drawable="@drawable/bgalt" />
<item android:state_focused="false" android:state_pressed="true"
android:drawable="@drawable/bgalt" />
<item android:drawable="@drawable/bgnorm" />
</selector>
Now use like below:
b1 = (Button) findViewById(R.id.b1);
b1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
b2.setBackgroundDrawable(getResources().getDrawable(R.drawable.whatever));
}
});
b2 = (Button) findViewById(R.id.b2);
b2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
b1.setBackgroundDrawable(getResources().getDrawable(R.drawable.whatever));
}
});
Try this:
final Button buttonA = (Button) findViewById(R.id.ButtonA);
final Button buttonB = (Button) findViewById(R.id.ButtonB);
buttonA.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
buttonB.setBackgroundColor(Color.CYAN);
}
});
buttonB.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
buttonA.setBackgroundColor(Color.RED);
}
});
or
make selector.xml in drawables folder and copy code below in it:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true" android:state_pressed="true"
android:drawable="@drawable/focused_pressed" />
<item android:state_focused="false" android:state_pressed="true"
android:drawable="@drawable/pressed" />
<item android:drawable="@drawable/normal" />
</selector>
copy this code for buttonA in your layout
<Button
android:id="@+id/buttonA"
style="@drawable/test"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:text="Button A" />
Use below code..
Boolean isOnePressed = false, isSecondPlace = false;
b1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
isOnePressed = true;
b1.setBackgroundColor(Color.BLUE);
if (isSecondPlace) {
b2.setBackgroundColor(Color.WHITE);
isSecondPlace = false;
}
}
});
b2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
b2.setBackgroundColor(Color.BLUE);
isSecondPlace = true;
if (isOnePressed) {
b1.setBackgroundColor(Color.WHITE);
isOnePressed = false;
}
}
});
Hope it helps...