Question

I have a Button with a drawableLeftand when i click on it i want to change only the drawableleft for another image. What java code i have to use?

XML:

<Button
    android:id="@+id/docli_btn_apagar"
    android:layout_width="200dp"
    android:layout_height="70dp"
    android:background="@android:color/transparent"
    android:onClick="ApagarLinha"
    android:drawableLeft="@drawable/trash"
    android:text="@string/apagar" 
    android:textAppearance="?android:attr/textAppearanceLarge"/>
Was it helpful?

Solution

This would be called in your button's onClick() handler

// get your button
Button docli_btn_apagar = (Button) findViewById(R.id.docli_btn_apagar );

// get the drawable
Drawable img = getContext().getResources().getDrawable( R.drawable.smiley );

// set the drawable left
docli_btn_apagar.setCompoundDrawablesWithIntrinsicBounds( img, null, null, null );

Or alternatively:

// You can skip the drawable object directly, by using ints/IDs
docli_btn_apagar.setCompoundDrawablesWithIntrinsicBounds(R.drawable.smiley, 0, 0, 0);

OTHER TIPS

public class AsyncClassTest extends Activity {

String strMessage;
private Button button;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    button = (Button) findViewById(R.id.docli_btn_apagar);
    button.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View view) {
            ((Button) view).setCompoundDrawables(getResources().getDrawable(android.R.drawable.btn_plus), null, null, null);
        }
    });
}
}
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top