problemi AutoCompleteTextView con elenco personalizzato
-
11-10-2019 - |
Domanda
Sto cercando di creare ListActivity con un'AutoCompleteTextView. Il Listview ha listItems che consiste di un ImageView e 2 TextViews. Tutto funziona bene, tranne per le stringhe di completamento automatico. Sto usando un ArrayAdapter ma Io non so come impostare le stringhe (paesi). Ecco parte del codice.
public class SearchActivity estende ListActivity {
static final String[] COUNTRIES = new String[] {
"Afghanistan", "Albania", "Algeria", "American Samoa", "Andorra",
"Angola", "Anguilla", "Antarctica", "Antigua and Barbuda", "Argentina",
"Armenia", "Aruba", "Australia", "Austria", "Azerbaijan",
"Bahrain", "Bangladesh", "Barbados", "Belarus", "Belgium",
"Belize", "Benin", "Bermuda", "Bhutan", "Bolivia",
"Bosnia and Herzegovina", "Botswana", "Bouvet Island", "Brazil", "British Indian Ocean Territory",
"British Virgin Islands", "Brunei", "Bulgaria", "Burkina Faso", "Burundi",
"Cote d'Ivoire", "Cambodia", "Cameroon", "Canada", "Cape Verde",
"Cayman Islands", "Central African Republic", "Chad", "Chile", "China",
"Christmas Island", "Cocos (Keeling) Islands", "Colombia", "Comoros", "Congo",
"Cook Islands", "Costa Rica", "Croatia", "Cuba", "Cyprus", "Czech Republic"
};
private AutoCompleteTextView searchView;
private ListView mListView;
private ArrayList<MyItem> itemList = new ArrayList<MyItem>();
private ListItemAdapter searchListAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.search);
searchView = (AutoCompleteTextView) findViewById(R.id.search_text);
searchView.setAdapter(searchListAdapter);
searchListAdapter = new ListItemAdapter(this, R.layout.search_row, itemList);
setListAdapter(searchListAdapter);
mListView = getListView();
mListView.setTextFilterEnabled(false);
}
/**
* This class is used to for the list objects.
*/
private class ListItemAdapter extends ArrayAdapter<MyItem> {
private ArrayList<MyItem> bevs;
private MyItem bevItem;
private TextView nameView;
private TextView descView;
private ImageView imageView;
public ListItemAdapter(Context context, int textViewResourceId,
ArrayList<MyItem> itemList) {
super(context, textViewResourceId, itemList);
this.bevs = itemList;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = convertView;
/* Update the views */
return view;
}
}
}
per favore mi punto nella giusta direzione
/ Cin cin Adrian
Soluzione
Credo che la cosa importante non trovi è quello di creare effettivamente un adattatore per l'array paesi.
ArrayAdapter<String> autocompleteCountriesAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line, COUNTRIES);
Quindi modificare il codice per la visualizzazione automatica completa del testo per usarlo:
searchView = (AutoCompleteTextView) findViewById(R.id.search_text);
searchView.setAdapter(autocompleteCountriesAdapter);
Dai un'occhiata a questo esempio: Completamento automatico di testo Visualizza | Android Dev Beginner Tutorial
Altri suggerimenti
Ho appena ricordato una domanda ho chiesto di recente Cercando per filtrare un ListView con runQueryOnBackgroundThread ma non succede nulla - ciò che mi manca ?. Nel mio caso ho avuto difficoltà a raggiungere il contenuto della lista per aggiornare quando una stringa di ricerca è stato inserito in una casella di testo. In superficie non è lo stesso problema come la tua, ma forse si sta cercando di ottenere la stessa cosa. Stavo cercando di creare un'attività di ricerca per aiutare le persone selezionare un paese per il mio WorldInfo app. L'idea era premono un pulsante di ricerca nell'attività principale e vedere un elenco di paesi che possono poi filtro digitando in una casella di testo. Poi si può selezionare il paese che vogliono.
Si scopre un tale impianto è integrato in Android! Controlla la risposta alla mia domanda da Shawn Lauzon .
Ci sono voluti un po 'di tempo per essere correttamente integrato nel sistema di funzione di ricerca, ma l'esperienza è molto meglio.