2016-02-01 21 views
10

Come si modifica la proprietà XML android:src in modo programmatico di un widget FloatingActionButton o Button? Ho un tasto definito come segue all'interno di un'attività:Cambia pulsante icona pulsante Android a livello di programmazione

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

Ha un android:src set iniziale come segue:

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

Sto cercando di utilizzare il setImageResource(int id) per modificare la proprietà android:src XML, ma come accedere a un'icona disegnabile come ic_media_pause dopo un clic del pulsante che si verifica ad esempio. Quando provo a passare in R.drawable.ic_media_pause al metodo setImageResource() che ho ricevuto, non posso risolvere l'errore di simbolo.

floatingActionButton.setImageResource(R.drawable.ic_media_pause);

Come si arriva ai R.drawable risorse disponibili per passarlo come argomento.

Qualsiasi aiuto sarebbe molto apprezzato. Grazie!

+0

Hai un file chiamato "ic_media_pause" nella cartella res/drawable o è presente l'icona di Android di default incluso nel SDK? Se è così, prova 'android.R.drawable.ic_media_pause' –

+0

Sto usando la libreria di icone Android di default inclusa nell'SDK. Il tuo suggerimento ha funzionato assolutamente. Dovresti pubblicare una risposta. In una nota a margine, potrei usare 'get.Resources.getIdentifier()' per ottenere una libreria di icone Android predefinita? –

+0

Fammi controllare vero veloce –

risposta

22

Stai tentando di accedere a un'icona predefinita inclusa nell'SDK. Devi prefisso il tuo identificatore di risorsa con "android". Ad esempio:

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

questo consentirà di fare riferimento alle icone predefinite.

:)