Stack Overflow em Português Asked by Cristiano on March 1, 2021
Estou tentando aplicar uma funcionalidade, clicando em um ícone dentro de uma lista de um RecyclerView.
Ao clicar no ícone, eu registro a aceitação da condição, caso não aceite, o “item todo” deve ser excluído da lista. Estou tentando fazer isto de dentro do Adapter, acredito que seja no onBindViewHolder
, porque eu quero o clique apenas no ícone do item, e não no item todo, até porque terei outros ícones com outras funções.
Não estou conseguindo excluir o item da lista:
Adapter XML:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="fill_vertical"
android:orientation="vertical"
android:paddingLeft="@dimen/dim_mid"
android:paddingRight="@dimen/dim_mid"
android:paddingTop="@dimen/dim_normal">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/dim_normal"
android:orientation="horizontal">
<ImageView
android:id="@+id/civUsuario"
style="@style/ImgPerfil"
android:layout_width="50dp"
android:layout_height="50dp" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center_vertical"
android:orientation="vertical"
android:padding="5dp">
<TextView
android:id="@+id/textNome"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Nome"
android:textStyle="bold" />
<TextView
android:id="@+id/textStatus"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Status" />
</LinearLayout>
<ImageView
android:id="@+id/icone03"
style="@style/IconesStatus" />
<ImageView
android:id="@+id/icone02"
style="@style/IconesStatus" />
<ImageView
android:id="@+id/icone01"
style="@style/IconesStatus" />
</LinearLayout>
</LinearLayout>
Adapter Java:
List<Usuario> usuarios;
@Override
public void onBindViewHolder(@NonNull final MyViewHolder holder, final int position) {
holder.icone01.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Executo a verificação
if (false) {
// Condição aceita
} else {
usuarios.remove(position);
notifyItemRemoved(position);
}
}
});
}
Este código não funciona… o item não é excluído…
Alguém sabe me informar qual seria a forma correta de se fazer isto? Preciso executar de dentro do Adapter para atribuir o onClick apenas ao ícone específico, ou acessar o ícone, atribuindo um onClick a ele de fora do Adapter, pelo recyclerView talvez… Não sei como fazer.
Seu ImageView com id "icone01" precisa da propriedade android:clickable="true"
.
Answered by Danilo de Oliveira on March 1, 2021
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP