getResources() [WTF]

6 respostas
Heartbreaker

Eu preciso, pelo menos por enquanto para testes, atribuir à variavel do tipo Bitmap de um objeto uma imagem que eu tenho na pasta res.
Fucei no developer.android e encontrei o decodeResource(). Usando o getResources() dentro de uma activity deu certo, mas quando eu precisei migrar este metodo pra outra classe, da o erro The method getResources() is undefined for the type <Classe>.
Então eu me pergunto, esse getResources() por acaso é só da classe Activity? Como eu faço então para obter isso dentro das minhas regras de negocio e não dentro de uma Activity?

6 Respostas

Marky.Vasconcelos

o getResources() é um método do Context, você pode pegar da ApplicationContext por exemplo.

fabriciov

Um bom habito é criar uma classe que herda application e armazenar em uma variável estática o app context justamente para esses usos.
App context vai estar sempre em memória enquanto sua aplica estiver rodando, então não tem problema armazena-la em uma estática.

Heartbreaker

Obrigado a todos. Eu resolvi passando um context no construtor dessa classe.

Heartbreaker

Isso é errado?

Marky.Vasconcelos

Não não, passar o Context por parametro é o mais indicado pois as por exemplo voce vai querer mostrar um Toast e você só pode exibi-lo se o Context for de uma Activity.

Para criar Views por exemplo os construtores recebem Contexts que precisam ser da Activity para funcionarem corretamente.

Heartbreaker

fabriciov:
Um bom habito é criar uma classe que herda application e armazenar em uma variável estática o app context justamente para esses usos.
App context vai estar sempre em memória enquanto sua aplica estiver rodando, então não tem problema armazena-la em uma estática.

Eu entendi o que voce quis dizer ma na hora de implementar fiquei meio perdido. Pode dar exemplo?

Criado 27 de maio de 2013
Ultima resposta 7 de jun. de 2013
Respostas 6
Participantes 3