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

on click em botão

Olá pessoal, criei uma lista e gostaria de criar um on click no botão e ir para layout seguinte

class ListaTransacoesAdapter(
        private val transacoes: List<TransacaoQuartos>,
        private val context: Context) : BaseAdapter() {

    private val europeu = R.drawable.quareto_casal_modelo_europeu
    private val casal = R.drawable.quarto_casal
    private val solteiro_duplo = R.drawable.quarto_solteiro_duplo
    private val solteiro_triplo = R.drawable.quarto_triplo

    override fun getView(position: Int, convertView: View?, parent: ViewGroup?): View? {
        val viewCreated = LayoutInflater.from(context).inflate(R.layout.transacao_item, parent, false)
        val transacao = transacoes[position]

        if (transacao.tipoDeQuarto == TipoDeQuarto.CASAL_EUROPEU) {
            viewCreated.img_quarto.setBackgroundResource(europeu)
        }else if (transacao.tipoDeQuarto == TipoDeQuarto.CASAL) {
            viewCreated.img_quarto.setBackgroundResource(casal)
        }else if (transacao.tipoDeQuarto == TipoDeQuarto.SOLTEIRO_DUPLO) {
            viewCreated.img_quarto.setBackgroundResource(solteiro_duplo)
        }else if (transacao.tipoDeQuarto == TipoDeQuarto.SOLTEIRO_TRIPLO) {
            viewCreated.img_quarto.setBackgroundResource(solteiro_triplo)
        }
        with(viewCreated) {
            titulo_anuncio.text = transacao.titulo_anuncio
            comentario_anuncio.text = transacao.comentario
            hospedes_anuncio.text = transacao.qtd_hospedes
            qtd_quarto.text = transacao.qtd_quarto
            valor_anuncio.text = transacao.valor_anuncio
        }
        return viewCreated
    }
    override fun getCount(): Int {
        return transacoes.size
    }
    override fun getItem(position: Int): Any {
        return transacoes[position]
    }
    override fun getItemId(position: Int): Long {
        return 0
    }
}
class DetalhesApStandard : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_detalhes_ap_standard)
        val transacoes: List<TransacaoQuartos> = exemploTransacao()
        configuraLista(transacoes)
    }

    private fun configuraLista(transacoes: List<TransacaoQuartos>) {
        lista_transacoes_listview.adapter = ListaTransacoesAdapter(transacoes, this)
    }

    private fun exemploTransacao() = listOf(
            TransacaoQuartos(
                    tipoDeQuarto = TipoDeQuarto.CASAL_EUROPEU,
                    titulo_anuncio = "Quarto de casal modelo Europeu",
                    comentario = "4,98 (107 comentários)",
                    qtd_hospedes = "Preço para 2 hóspedes",
                    qtd_quarto = "1 quarto - 1 cama 1 banheiro",
                    valor_anuncio = " R$ 207/noite"

            ),
            TransacaoQuartos(
                    tipoDeQuarto = TipoDeQuarto.CASAL,
                    titulo_anuncio = "Quarto de casal",
                    comentario = "4,95 (81 comentários)",
                    qtd_hospedes = "Preço para 2 hóspedes",
                    qtd_quarto = "1 quarto - 1 cama 1 banheiro",
                    valor_anuncio = " R$ 174/noite"
            ),
            TransacaoQuartos(
                    tipoDeQuarto = TipoDeQuarto.SOLTEIRO_DUPLO,
                    titulo_anuncio = "Quarto de solteiro duplo",
                    comentario = "4,93 (63 comentários)",
                    qtd_hospedes = "Preço para 2 hóspedes",
                    qtd_quarto = "1 quarto - 2 cama 1 banheiro",
                    valor_anuncio = " R$ 110/noite"

            ),
            TransacaoQuartos(
                    tipoDeQuarto = TipoDeQuarto.SOLTEIRO_TRIPLO,
                    titulo_anuncio = "Quarto de solteiro triplo",
                    comentario = "4,91 (31 comentários)",
                    qtd_hospedes = "Preço para 3 hóspedes",
                    qtd_quarto = "1 quarto - 3 cama 1 banheiro",
                    valor_anuncio = " R$ 140/noite"

            )
    )
4 respostas

Oi Luciano, de boa?

Cara não entendi muito bem onde tu quer colocar o onClick, consegue ajudar a entender melhor ?

Sim, não expliquei mesmo, perdão rsrs

Então, tenho uma ListView que vai receber uma publicação com foto, informações e um botão, e esse botão eu queria clicar em cima e ir pra outra layout

solução!

Por ser uma lista, geralmente não deixamos um botão, clicamos na linha inteira, fica mais fácil para o usuário.

Ai se tu seguir essa abordagem, tu pode usar o método setOnItemClickListener da ListView e colocar o comportamento dentro dele.

Inclusive, acho que tu acabou não fazendo o treinamento aqui da plataforma sobre Android e tals, se tiver um tempinho, recomendo que tu veja, fazemos algo muito parecido nele e deve tirar possíveis dúvidas que você pode vir a ter no futuro recente :)

Qualquer coisa estamos aqui pra te ajudar :D

Sim, clicando na linha inteira eu já consegui fazer, mas a publicação que estou fazendo precisa de um botão, não faz sentido não ter Esse curso de android é em Kotlin?

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