Android: Suche aus großer Arrayliste

Ich habe einen Datensatz von ungefähr 29.000 Datensätzen. Mein Bildschirm enthält das EditText-Feld für Suchkriterien und die Listenansicht mit allen 29.000 Datensätzen.

Wenn Sie mit der angegebenen Methode suchen, dauert es einige Zeit, und es wird nicht weniger Strom ausgegeben, als ich brauche.

Mein EditText enthält

<code>final EditText txtSearchCity = (EditText) findViewById(R.id.edtCity);
        txtSearchCity.addTextChangedListener(new TextWatcher() {
            @Override
            public void afterTextChanged(Editable s) {
            }

            @Override
            public void beforeTextChanged(CharSequence s, int start, int count,
                    int after) {
            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before,
                    int count) {
                aCountryIDTemp.clear();
                aCityStateTemp.clear();

                for (int i = 0; i < aCountryID.size(); i++) {
                    if (aCityState
                            .get(i)
                            .toLowerCase()
                            .contains(
                                    txtSearchCity.getText().toString()
                                            .toLowerCase())) {
                        aCountryIDTemp.add(aCountryID.get(i));
                        aCityStateTemp.add(aCityState.get(i));
                    }
                }

                BindList();
            }
        });
    }
</code>

Die BindList () -Methode setzt die Arrayliste aCityStateTemp auf den Adapter. Jede andere Möglichkeit, eine neue ArrayList dynamisch zu suchen und zu erstellen.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage