Frage

Ich versuche ListActivity mit einem AutoCompleteTextView zu erstellen. Listenansicht ist, die eine Imagelistitem und 2 bestehen aus Textviews. Alles funktioniert gut, außer für die Autocomplete-Strings. Ich verwende einen ArrayAdapter aber ich weiß nicht, wie die Strings zu setzen (Länder). Hier ist ein Teil des Codes.

public class SearchActivity erweitert 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;
    }
}

}

Bitte zeigen Sie mir in die richtige Richtung

/ Prost Adrian

War es hilfreich?

Lösung

Ich denke, das Wichtigste ist, Sie fehlen, um tatsächlich einen Adapter für die Länder Array zu erstellen.

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

Dann wird Ihren Code für die Auto-Vervollständigen Textansicht ändern, es zu benutzen:

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

Schauen Sie sich dieses Beispiel: Auto Complete Textansicht | Android Anfänger Dev Tutorial

Andere Tipps

Ich erinnere mich nur eine Frage, die ich vor kurzem gefragt Den Versuch, ein Listview mit runQueryOnBackgroundThread zu filtern, aber nichts passiert - was ich bin fehlt. In meinem Fall hatte ich Mühe, den Inhalt der Liste zu aktualisieren bekommen, wenn ein Suchbegriff in ein Textfeld eingegeben wurde. An der Oberfläche ist es nicht das gleiche Problem wie bei Ihnen, aber vielleicht versuchen Sie das Gleiche zu erreichen. Ich habe versucht, eine Suchaktivitäten zu schaffen, um den Menschen helfen, ein Land für meine WorldInfo App auswählen. Die Idee war, dass sie eine Suchtaste in der Haupttätigkeit drücken und sehen Sie eine Liste der Länder, dass sie können dann Filter durch Eingabe in ein Textfeld ein. Dann können sie wählen Sie das Land, das sie wollen.

Es stellt sich heraus eine solche Einrichtung in Android gebaut! Schauen Sie sich die Antwort auf meine Frage von Shawn Lauzon .

Es dauerte eine gewisse Zeit, um richtig in das System Suchfunktion integriert werden, aber die Erfahrung ist viel besser.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top