Ответ 1
Вот как вы можете это сделать:
Шаг 1:
Просто создайте макет с просмотром или расширенным списком повторного использования или списком в зависимости от того, что вы хотите использовать.
Шаг 2. В вашей деятельности (CityActivity) вам нужно сделать следующее:
- Создайте обработчик следующим образом:
закрытый статический класс SearchHandler расширяет обработчик {
private WeakReference<CityActivity> mTarget;
SearchHandler(CityActivity target) {
mTarget = new WeakReference<>(target);
}
public void setTarget(CityActivity target) {
mTarget.clear();
mTarget = new WeakReference<>(target);
}
@Override
public void handleMessage(final Message msg) {
if (msg.what == CityActivity.TRIGGER_SEARCH) {
CityActivity activity = mTarget.get();
activity.makeRequest(mSearchText.trim());
}
}
} 2. Поместите textchangelistener на свой искомый текст
public void setTextChangeListener() {
searchView.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
mSearchText = searchView.getText().toString();
if (!mSearchText.trim().isEmpty()) {
handler.removeMessages(CitySelectionActivity.TRIGGER_SEARCH);
handler.sendEmptyMessageDelayed(CityActivity.TRIGGER_SEARCH,
CityActivity.SEARCH_TRIGGER_DELAY_IN_MS);
} else {
suggestList.clear();
fillAnything();
}
}
@Override
public void afterTextChanged(Editable s) {
}
});
}
Здесь предлагаемый список - это данные, которые предоставляются вашему списку