2016-02-01 16 views
10

Wie würde man die android:src XML-Eigenschaft ändert programmatisch einen FloatingActionButton oder Button-Widget? Ich habe eine Schaltfläche wie folgt definiert innerhalb einer Aktivität:Ändern Android Drawable Tasten-Ikone Programmatically

FloatingActionButton floatingActionButton = (FloatingActionButton) this.findViewById(R.id.start_button); 

Es eine anfängliche android:src gesetzt hat, wie folgt:

android:src="@android:drawable/ic_media_play" 

Ich versuche, die setImageResource(int id) zu nutzen, um die android:src XML-Eigenschaft zu ändern, aber wie ich auf ein Drawable-Symbol wie ic_media_pause nach einem Knopf klicken, der zum Beispiel auftritt. Wenn ich versuche, in R.drawable.ic_media_pause zur setImageResource() Methode zu übergeben erhielt ich eine nicht Symbol Fehler beheben.

floatingActionButton.setImageResource(R.drawable.ic_media_pause);

Wie komme ich an den zur Verfügung stehenden Ressourcen R.drawable als Argument übergeben in.

würde jede Hilfe dankbar groß sein. Vielen Dank!

+0

Haben Sie eine Datei in Ihrer res/ziehbar Ordner namens „ic_media_pause“ oder ist dies ein Standard-Android-Symbol im SDK enthalten? Wenn ja, versucht 'android.R.drawable.ic_media_pause' –

+0

Ich bin mit der Standard-Android-Symbol-Bibliothek im SDK enthalten. Ihr Vorschlag hat absolut funktioniert. Sie sollten eine Antwort schreiben. Nebenbei bemerkt, könnte ich 'get.Resources.getIdentifier()' verwenden, um eine Standard-Android-Symbolbibliothek zu erhalten? –

+0

mich ganz schnell Lassen Sie überprüfen –

Antwort

22

Sie versuchen, ein Standardsymbol für den Zugriff auf im SDK enthalten. Sie müssen Ihre Ressourcen-ID mit "android" voranstellen. Zum Beispiel:

floatingActionButton.setImageResource(android.R.drawable.ic_media_pause); 

Dies ermöglicht Ihnen, die Standardsymbole zu referenzieren.

:)

Verwandte Themen