Как программно изменить значок кнопки? - PullRequest
18 голосов
/ 23 ноября 2010

У меня уже есть кнопка:

<Button 
android:layout_height="wrap_content" 
android:layout_width="fill_parent"
android:drawableLeft="@drawable/empty"
android:id="@+id/buttonMyText" 
android:text="  myText" 
android:textSize="20px" 
android:gravity="left">
</Button>

У меня при запуске программы отображается значок «пусто» на кнопке.

Что я хочу сделать, так это автоматически поменять значок кнопки с моего кода (низкий, средний и высокий) на основе введенных пользователем данных

Я пытался:

Button myButton = bla... bla... bla...

Но я не могу понять

myButton.(what?)

Ответы [ 2 ]

41 голосов
/ 23 ноября 2010

Если вы посмотрите документы, вы увидите эквивалент кода для каждого атрибута XML.

Смотрите здесь: http://developer.android.com/reference/android/widget/Button.html

Поиск drawableLeft показывает:

android:drawableLeft:
setCompoundDrawablesWithIntrinsicBounds(Drawable,Drawable,Drawable,Drawable)
7 голосов
/ 28 ноября 2014

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

buttonMyText.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View arg0) {
       buttonMyText.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ImageNameHere, 0, 0, 0);
       buttonMyText.setTextColor(Color.BLACK);
    }
});
...