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

Erro ListaTransacoesActivity

Fiz tudo como na aula, mas na linha abaixo do arquivo ListaTransacoesActivity:

lista_transacoes_listview(ListaTransacoesAdapter(transacoes, this))

fica vermelho os termos lista_transacoes_listview no início da linha e o termo transacoes, primeiro atributo de ListaTransacoesAdapter. Passando mouse em cima aparece a expressão "Unresolved reference", mas não consigo achar o problema.

4 respostas

Oi Andre, tudo bem?

O seu código tá tentando criar uma instância da referência lista_transacoes_listview ou fazendo uma chamada de função. Neste caso, lista_transacoes_listview é um objeto, portanto, o compilador indica que não sabe lidar com essa referência.

Para resolver o problema, basta apenas usar a property adapter ou chamar a função setAdapter() e enviar a instância de ListaTransacoesAdapter.

[]s

list_transacoes_listview não muda de cor, parece que o synthetic não funciona e eu o declarei corretamente . A aplicação até executa mas não abre no emulador. Tentei com findViewById e também não funcionou. Aparentemente na hora de inflar a activity dá erro. Creio que seja porque troquei o android support pela androidx devido minha API. O erro no logcat está assim: android.view.InflateException: Binary XML file line #9: Binary XML file line #9: Error inflating class android.support.v7.widget.CardView

Meu código está assim.

import android.os.Bundle
import android.widget.ArrayAdapter
import androidx.appcompat.app.AppCompatActivity
import br.com.alura.financask.R;
import kotlinx.android.synthetic.main.activity_lista_transacoes.*

class ListaTransacoesActivity: AppCompatActivity(){

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_lista_transacoes)


        val transacoes = listOf("Carro  - R$20.000,00", "Computador - R$2.000,00", "Gasolina - R$50,00")

        val ArrayAdapter = ArrayAdapter(this, android.R.layout.simple_list_item_1, transacoes)

        lista_transacoes_listview.setAdapter(ListaTransacoesAdapter(transacoes, this))
    }
}

Creio que achei a solução no arquivo form_transacao.xml troquei android.support.design.widget.TextInputLayout

por

com.google.android.material.textfield.TextInputLayout

e aí funcionou perfeitamente

solução!

Faz sentido, usando o AndroidX precisa adaptar o código para usar o pacote do AndroidX mesmo.

Caso não tiver mais dúvidas sobre o tópico, pode marcar como solucionado?

[]s