Cercare in una Listview Android con Kotlin
In questo articolo abbiamo visto come riempire una ListView Android con Kotlin.
Oggi aggiungiamo la funzionalità di ricerca con la SearchView.
In questo articolo abbiamo visto come riempire una ListView Android con Kotlin.
Oggi aggiungiamo la funzionalità di ricerca con la SearchView.
Oggi vediamo come creare un custom adapter in Kotlin e Android, prendendo i dati da un JSON remoto.
Il JSON è liberamente accessibile; potete vedere l'url nel codice.
Con i dati andremo a riempire una ListView.
Premetto che:
Il componente per Android RecyclerView, è quello che sostituisce altri contenitori come ListView.
Se volete usare contenitori con dati "ripetuti" come liste, è altamente consigliato.
Oggi vediamo una sua implementazione in Kotlin; prenderemo i dati da web service in formato JSON usando Anko e Klaxon, e costruiremo un nostro adapter:
Mi è servito in diverse occasioni intercettare l'evento resize su un JFrame.
Oggi vi espongo un esempio di come intercettare tale evento.
Quello che ci serve è un component listener, e ComponentAdapter.
AutoCompleteTextView è un componente che in pratica si comporta come Google Suggest.
Oggi vediamo come usarlo, e per complicarci la vita, prenderemo in dati in formato JSON da un servizio remoto, e useremo un custom adapter.
Cominciamo con la classe che mappa i dati JSON:
public class Cities {
private int id;
private String nome;
private String paese;
private double latitudine;
private double longitudine;
public Cities(int id, String nome) {
this.id = id;
this.nome = nome;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getPaese() {
return paese;
}
public void setPaese(String paese) {
this.paese = paese;
}
public double getLatitudine() {
return latitudine;
}
public void setLatitudine(double latitudine) {
this.latitudine = latitudine;
}
public double getLongitudine() {
return longitudine;
}
public void setLongitudine(double longitudine) {
this.longitudine = longitudine;
}
}
I i campi JSON quindi sono:
Supponiamo di avere il nostro Adapter che estende BaseAdapter.
E supponiamo di volere rendere non selezionabile una riga della nostra ListView nel caso di una determinata condizione.
Come possiamo fare?
Semplicemente facendo l'Override del metodo isEnabled.