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.