私は約29,000レコードのレコードセットを持っています。画面には、検索基準のEditTextボックスと、29,000件すべてのレコードを含むリストビューが含まれています。
リストされた方法で検索することにより、時間がかかり、必要に応じてフローの出力が少なくなりません。
私のEditTextには
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();
}
});
}
BindList()メソッドは、arraylistaCityStateTempをアダプターに設定しています。新しいArrayListを動的に検索および作成するその他の方法。