Я хотел бы использовать текстовое представление автозаполнения android с настраиваемыми выпадающими списками (не только строка будет включена). Он работает особым образом: он находит соответствующие элементы в моем arraylist, и если я нажму на элемент, в текстовом поле появится правильная строка. Однако выпадающее меню не отображает правильные строки, но первые X-записи (где x - число_из_результатов) моего arraylist. Пример: arraylist: a, b, c, aa, ab, ac Введенный текст: a my resaults: a, b, c, aa (обратите внимание на количество отказов) , и если я нажму на b, textview получает aa (второй результат)Autocompleteview с настраиваемым элементом списка не работает должным образом
Как я понимаю, у меня проблемы с моим адаптером или с моим классом customAutoComplete. Вот мой класс CustomAutoCompleteView.
public class CustomAutoCompleteView extends AutoCompleteTextView {
public CustomAutoCompleteView(Context context) {
super(context);
}
public CustomAutoCompleteView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public CustomAutoCompleteView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
public boolean enoughToFilter() {
return true;
}
protected void onFocusChanged (boolean focused, int direction, Rect previouslyFocusedRect)
{
if(focused)
performFiltering("", 0);
super.onFocusChanged(focused, direction, previouslyFocusedRect);
}
И это мой listadapter:
public class ListAdapter extends ArrayAdapter<StopData> {
public ListAdapter(Context context, int textViewResourceId) {
super(context, textViewResourceId);
// TODO Auto-generated constructor stub
}
private List<StopData> stops;
public ListAdapter(Context context, int resource, List<StopData> stops) {
super(context, resource, stops);
this.stops = stops;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null) {
LayoutInflater vi;
vi = LayoutInflater.from(getContext());
v = vi.inflate(R.layout.megalloelem, null);
}
StopData p = stops.get(position);
if (p != null) {
TextView stopname = (TextView) v.findViewById(R.id.megallo);
if (stopname != null) {
stopname.setText(p.name);
}
}
return v;
}
Функция GetView уже получает "неправильные" индексы, так что проблема не (только) есть. Любые идеи, как получить индексы результатов от оригинального arraylist? С уважением, paland3