Solucionado (ver solução)
Solucionado
(ver solução)
7
respostas

getDrawable deprecated

O que usar em API´s recentes, ao invés de:

Drawable drawableImagemPacote = resources.getDrawable(idDrawble);

?

7 respostas

Fala ai Ronney, de boa ?

Segundo a documentação, você deve usar o método getDrawable que recebe o id da mesma forma e um tema.

Voce pode ver aqui

Para obter um tema, você pode pedir para a activity :

Theme tema = activity.getTheme();

Olá Matheus, Obrigado pela rápida resposta, acho que fiz uma gambi e não deu certo

    private Drawable devolveDrawble(Pacote pacote) {
        Resources resources = context.getResources();
        int idDrawble = resources.getIdentifier(pacote.getImagem(), "drawble", context.getPackageName());
        Resources.Theme tema = ((Activity)context).getTheme();
        Drawable drawableImagemPacote = resources.getDrawable(idDrawble, tema);
        return drawableImagemPacote;
    }

Também não sei o que eu fiz e não está mais dando o warning em design time, mas também o app não roda

Ele chega a dar algum erro ?

Sim, aqui

Drawable drawableImagemPacote = resources.getDrawable(idDrawble, tema);


https://github.com/rbnigro/Viagens

Mas no logcat, chega a dar alguma exception ?

que nada


    --------- beginning of crash
08-21 18:18:35.946 1139-1139/br.com.alura.viagem E/AndroidRuntime: FATAL EXCEPTION: main
    Process: br.com.alura.viagem, PID: 1139
    android.content.res.Resources$NotFoundException: Resource ID #0x0
        at android.content.res.ResourcesImpl.getValue(ResourcesImpl.java:190)
        at android.content.res.Resources.getDrawable(Resources.java:766)
        at br.com.aluraviagens.ui.adapter.ListaPacotesAdapter.devolveDrawble(ListaPacotesAdapter.java:93)
solução!

Cara, parece que você não tá passando nenhum id, consegue ver se é isso mesmo ?

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software