Resumo: Neste artigo, discutiremos como filtrar uma ListView usando um SearchView em uma atividade quando a ListView está em fragmentos no Android. Abordaremos passo a passo como implementar essa funcionalidade, desde a configuração básica até a adição de lógica de filtragem e atualização da ListView com base na entrada do usuário.
Introdução:
Em muitos aplicativos Android, é comum usar fragmentos para dividir a interface do usuário em partes reutilizáveis e interativas. Ao lidar com fragmentos que contêm ListView, é útil ter a capacidade de filtrar os itens com base em uma entrada de pesquisa fornecida pelo usuário. Neste artigo, mostraremos como implementar essa funcionalidade usando um SearchView.
Pré-requisitos:
Antes de começar, é importante ter conhecimento básico de desenvolvimento de aplicativos Android usando a linguagem Java e estar familiarizado com a criação e o uso de fragmentos, ListView e SearchView no Android.
Passo 1: Configurando o SearchView:
Primeiro, precisamos adicionar um SearchView ao nosso layout de fragmento. Abra o arquivo de layout do fragmento em que a ListView está localizada e adicione o seguinte código:
xml
Copy code
<SearchView
android:id=”@+id/search_view”
android:layout_width=”match_parent”
android:layout_height=”wrap_content” />
Passo 2: Configurando a ListView:
Agora, vamos configurar a ListView no fragmento. Certifique-se de ter um ArrayAdapter ou um adaptador personalizado para a ListView. No código do fragmento, adicione o seguinte trecho:
java
Copy code
ListView listView = rootView.findViewById(R.id.list_view);
ArrayAdapter<String> adapter = new ArrayAdapter<>(getContext(), android.R.layout.simple_list_item_1, items);
listView.setAdapter(adapter);
Certifique-se de substituir “items” pelos dados reais que você deseja exibir na ListView.
Passo 3: Adicionando a lógica de filtragem:
Para adicionar a funcionalidade de filtragem, precisamos implementar um filtro personalizado para o adaptador da ListView. No código do fragmento, adicione o seguinte trecho:
java
Copy code
SearchView searchView = rootView.findViewById(R.id.search_view);
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
return false;
}
@Override
public boolean onQueryTextChange(String newText) {
adapter.getFilter().filter(newText);
return false;
}
});
O código acima adiciona um ouvinte de texto à SearchView e, sempre que o texto da consulta é alterado, chamamos o método filter() do adaptador para atualizar a exibição da ListView com base no texto de pesquisa fornecido pelo usuário.
Conclusão:
Neste artigo, aprendemos como filtrar uma ListView usando um SearchView em uma atividade quando a ListView está em fragmentos no Android. Discutimos os passos necessários para configurar o SearchView, a ListView e implementar a lógica de filtragem usando um filtro personalizado. Agora, você pode melhorar a usabilidade dos seus aplicativos Android permitindo que os usuários filtrem facilmente os itens da ListView com base em suas preferências de pesquisa.