Desidero filtrare il mio listView
utilizzando una casella EditText
e utilizzando la funzione adattatore getFilter()
. Funziona perfettamente finché non inserisco un carattere di spazio nella casella di testo.Filtro per Android ListView - Spazio Character
Edit: E 'un SimpleAdapter non ArrayAdapter
Se il mio elenco contiene queste parole: { "Apple", "Banana", "Mela Rossa"} Se scriv "mela" restituirà tutte le articoli contenenti la parola mela in essa (mela e mela rossa). Se digito "mela" non restituirà nulla.
Qualche idea? Ecco il codice:
searchBox = (EditText) findViewById(R.id.searchBox);
searchBox.addTextChangedListener(filterTextWatcher);
e
private TextWatcher filterTextWatcher = new TextWatcher() {
public void onTextChanged(CharSequence s, int start, int before, int count) {
// TODO Auto-generated method stub
}
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
}
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
myAdapter.getFilter().filter(s.toString());
}
};
Hai mai immaginato questo? –
Non mi dispiace. Penso che la soluzione potrebbe essere quella di creare il tuo adattatore basato su un ArrayAdapter ma non ho provato (smesso di lavorare su quel progetto). – Chris911
@CaptainProg Che tipo di risposta stai cercando? Con la domanda originale posta usando 'trim()' è la migliore risposta. – Sam