Я хотел бы настроить AutoCompleteTextView на Android. Обычно выпадающее меню появляется только тогда, когда мы начинаем вводить текст в EditText. Но я хочу отобразить все элементы, когда я просто нажимаю AutoCompleteTextView, а затем отображать отфильтрованные элементы, когда я начинаю вводить текст. Какой метод следует реализовать для достижения этого.Настроить AutoCompleteTextView Android
1
A
ответ
1
Вот код работает для меня,
Set Этот адаптер autocompletetextview
AutoCompleteTextView etProductSearch = (AutoCompleteTextView)getView().findViewById(R.id.edtSearchBoxTakeOrder);
ProductSearchAdapter adapter = new ProductSearchAdapter(getActivity(), android.R.layout.simple_dropdown_item_1line, productList);
etProductSearch.setAdapter(adapter);
ProductSearchAdapter класса
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.Filter;
import android.widget.TextView;
public class ProductSearchAdapter extends ArrayAdapter<ProductDataModel> {
private ArrayList<ProductDataModel> items;
private ArrayList<ProductDataModel> itemsAll;
private ArrayList<ProductDataModel> suggestions;
private int viewResourceId;
@SuppressWarnings("unchecked")
public ProductSearchAdapter(Context context, int viewResourceId,
ArrayList<ProductDataModel> items) {
super(context, viewResourceId, items);
this.items = items;
this.itemsAll = (ArrayList<ProductDataModel>) items.clone();
this.suggestions = new ArrayList<ProductDataModel>();
this.viewResourceId = viewResourceId;
}
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null) {
LayoutInflater vi = (LayoutInflater) getContext().getSystemService(
Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(viewResourceId, null);
}
ProductDataModel product = items.get(position);
if (product != null) {
TextView productLabel = (TextView) v.findViewById(android.R.id.text1);
if (productLabel != null) {
productLabel.setText(product.getProductName());
}
}
return v;
}
@Override
public Filter getFilter() {
return nameFilter;
}
Filter nameFilter = new Filter() {
public String convertResultToString(Object resultValue) {
String str = ((ProductDataModel) (resultValue)).getProductName();
return str;
}
@Override
protected FilterResults performFiltering(CharSequence constraint) {
if (constraint != null) {
suggestions.clear();
for (ProductDataModel product : itemsAll) {
if (product.getProductName().toLowerCase()
.startsWith(constraint.toString().toLowerCase())) {
suggestions.add(product);
}
}
FilterResults filterResults = new FilterResults();
filterResults.values = suggestions;
filterResults.count = suggestions.size();
return filterResults;
} else {
return new FilterResults();
}
}
@Override
protected void publishResults(CharSequence constraint,
FilterResults results) {
@SuppressWarnings("unchecked")
ArrayList<ProductDataModel> filteredList = (ArrayList<ProductDataModel>) results.values;
if (results != null && results.count > 0) {
clear();
for (ProductDataModel c : filteredList) {
add(c);
}
notifyDataSetChanged();
}
}
};
}
0
Создайте подкласс AutoComplteText
класса и переопределить enoughToFilter
метод, как показано ниже :
@Override
public boolean enoughToFilter() {
return true;
}
Смежные вопросы
- 1. Как настроить раскрывающийся список AutoCompleteTextView на Android
- 2. Android: AutoCompleteTextView - как настроить порядок сортировки
- 3. Как настроить представление AutoCompleteTextView в Android?
- 4. Чтобы настроить список AutocompleteTextView
- 5. AutoCompleteTextView in android
- 6. Android. Autocompletetextview и sqlite
- 7. Android AutoCompleteTextView с чипами
- 8. Android AutoCompleteTextView OnClick
- 9. AutoCompleteTextView в отображении android
- 10. Тестирование AutoCompleteTextView в Android
- 11. Android AutoCompleteTextView NullPointerException
- 12. Android-ActionBar AutoCompleteTextview
- 13. Android AutoCompleteTextView Refreshing
- 14. Android AutoCompleteTextView и ViewHolder
- 15. Android AutoCompleteTextView DropDown Position
- 16. AutocompleteTextView в Xamarin Android
- 17. Android - AutoCompleteTextView подстановочное предложение
- 18. Android - AutocompleteTextView выпадающий вопрос
- 19. AutoCompleteTextView с Parse.com (Android)
- 20. Android: AutoCompleteTextView и TextWatcher
- 21. Android AutoCompleteTextView onClick проблема
- 22. Android AutocompleteTextview Inline прогнозы
- 23. Android - Настроить предложения SearchView divider
- 24. Android AutoCompleteTextView: получить позицию элемента
- 25. Пользовательский макет Android для AutoCompleteTextView
- 26. Как изменить шрифт Android AutoCompleteTextView?
- 27. Android AutoCompleteTextView нажмите не работает
- 28. AutoCompleteTextView click событие на Android
- 29. несовместимый типа в Android AutoCompleteTextView
- 30. Android AutoCompleteTextView для упоминания людей
Нужно ли настраивать AutoCompleteTextView или часть фильтра? Когда вы хотите настроить фильтр, напишите ur собственный собственный класс адаптера и управляйте фильтром. Если вы хотите настроить AutoCompleteTextView, тогда реализуйте интерфейс OnEditorActionListener, где u может получить контроль над keyevent текста. –