Does Android button color change to onClick?

I have a problem.

I have two Button objects.

ButtonA ButtonB

Requirement: -

When I ButtonA , the color of the button should be changed, and it should remain the same until I ButtonB on ButtonB .

After clicking on ButtonB the same should work. I'm for ButtonA

 if (v == btn) { btn.setBackground(mActivity.getResources().getDrawable(R.drawable.button_color_chnager)); } 

XML:

 <item android:state_focused="true" android:state_pressed="true" android:drawable="@drawable/ic_launcher" /> 
+6
source share
5 answers

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 as 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)); } }); 
+16
source

Try the following:

 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 the drawables folder and copy the code below:

 <?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 button A 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" /> 
+10
source

Use the code below.

 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 this helps ...

+4
source

I have not tested the code below. but I think it will help you.

 private Drawable defaultDrawableA; private Drawable defaultDrawableB; private Button buttonA , buttonB; buttonA = (Button) findViewById(R.id.buttonA); buttonB= (Button) findViewById(R.id.buttonB); buttonA .setOnClickListener(this); buttonB.setOnClickListener(this); @Override public void onClick(View v) { if (v == buttonA) if(defaultDrawableA== null) { defaultDrawableA=buttonA.getDrawable(); buttonA.setBackgroundColor(Color.BLUE); } else { buttonA.setBackgroundDrawable(defaultDrawableA); defaultDrawableA=null; } else if (v == buttonB) if(defaultDrawableB == null) { defaultDrawableB=buttonB.getDrawable(); buttonB.setBackgroundColor(Color.RED); } else { buttonB.setBackgroundDrawable(defaultDrawableB); defaultDrawableB=null; } return; } 
+3
source

button_bg.xml

 <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:drawable="@color/button_pressed"/> <!-- pressed --> <item android:drawable="@color/button_default"/> <!-- default --> 

activity_main.xml

  <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity"> <Button android:id="@+id/button1" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/button_bg" android:text="Click Me" android:textColor="#fff" /> 

0
source

Source: https://habr.com/ru/post/1487024/


All Articles