Question

Je suis en train de créer ListActivity avec un AutoCompleteTextView. Le Listview a listItems qui se compose d'un ImageView et 2 TextViews. Tout fonctionne bien sauf pour les chaînes de saisie semi-automatique. J'utilise un ArrayAdapter mais je ne savez pas comment comment définir les cordes (pays). Voici une partie du code.

SearchActivity public class {étend 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;
    }
}

}

S'il vous plaît me pointer dans la bonne direction

/ Vive Adrian

Était-ce utile?

La solution

Je pense que la chose importante que vous manquez est de créer réellement un adaptateur pour le réseau de pays.

ArrayAdapter<String> autocompleteCountriesAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line, COUNTRIES);

Ensuite, changer votre code pour la vue texte complet automatique à utiliser:

searchView = (AutoCompleteTextView) findViewById(R.id.search_text);
searchView.setAdapter(autocompleteCountriesAdapter);

Consultez cet exemple: Auto Texte complet Voir | Android Dev Débutant Tutoriel

Autres conseils

Je viens de me rappeler une question que je posais récemment Essayer pour filtrer un ListView avec runQueryOnBackgroundThread mais rien ne se passe - ce que je manque ?. Dans mon cas, j'avais du mal à obtenir le contenu de la liste de rafraîchissement lorsqu'une chaîne de recherche a été entré dans une zone de texte. Sur la surface, il est pas le même problème que le vôtre, mais peut-être que vous essayez d'accomplir la même chose. Je suis en train de créer une activité de recherche pour aider les gens à choisir un pays pour mon application InfoMonde. L'idée était qu'ils appuient sur un bouton de recherche dans l'activité principale et voir la liste des pays qu'ils peuvent ensuite filtrer en tapant dans une zone de texte. Ensuite, ils peuvent choisir le pays dans lequel ils veulent.

Il se trouve une telle installation est intégrée dans Android! Consultez la réponse à ma question par Shawn Lauzon .

Il a fallu un certain temps pour se correctement intégré dans le moteur de recherche du système, mais l'expérience est beaucoup mieux.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top