1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

  2. Anuncie Aqui ! Entre em contato fdantas@4each.com.br

[Android]

Discussão em 'Mobile' iniciado por Stack, Abril 22, 2021.

  1. Stack

    Stack Membro Participativo

    Estou implementando um SearchView em uma lista que tenho. Porém, quando digito uma letra (ex: "a"), ele pega todos os nomes que tenham essa letra, e eu quero somente pegar o nome que esta sendo digitado no search, alguém consegue me ajudar?

    Código implementação do search (PokemonsAdapter)

    override fun getFilter(): Filter {
    return object: Filter() {
    override fun performFiltering(charsequence: CharSequence ? ): FilterResults {

    val filterResults = FilterResults()
    if (charsequence == null || charsequence.length < 0) {
    filterResults.count = pokemonsFilter.size
    filterResults.values = pokemonsFilter
    } else {
    var searchCh = charsequence.toString().toLowerCase()

    val pokemon = ArrayList < PokemonItem > ()

    for (item in pokemonsFilter) {
    if (item.nome.contains(searchCh)) {
    pokemon.add(item)
    }
    }
    filterResults.count = pokemon.size
    filterResults.values = pokemon
    }

    return filterResults

    }

    override fun publishResults(constraint: CharSequence ? , filterResults : FilterResults ? ) {

    pokemons = filterResults!!.values as MutableList < PokemonItem >
    notifyDataSetChanged()

    }

    }
    }


    Código no Fragment da lista em que quero pesquisar(ListaPokemonsFragment)

    override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {

    super.onCreateOptionsMenu(menu, inflater)
    inflater.inflate(R.menu.search_menu, menu)
    val searchManager = activity?.getSystemService(SEARCH_SERVICE) as SearchManager
    val searchView: SearchView = menu.findItem(R.id.action_search).actionView as SearchView
    val searchMenuItem = menu.findItem(R.id.action_search)

    searchView.setSearchableInfo(searchManager.getSearchableInfo(activity?.componentName))
    searchView.queryHint = "Pesquisar"
    searchView.setOnQueryTextListener(object: SearchView.OnQueryTextListener {
    override fun onQueryTextSubmit(filterString: String ? ): Boolean {
    adapter!!.filter.filter(filterString)

    return true
    }

    override fun onQueryTextChange(filterString: String ? ): Boolean {

    adapter!!.filter.filter(filterString)
    return true
    }

    })
    searchMenuItem.icon.setVisible(false, false)
    }


    Quero, por exemplo, enquanto digito "Charizard", que vá filtrando letra por letra até completar o nome certo e me aparecer o "charizard". Alguém pode me ajudar?

    Continue reading...

Compartilhe esta Página