У меня есть 3 AutoCompleteTextViews, и я хотел бы зарегистрировать на них 2 адаптера String []. В настоящее время я делаю это:Адаптер AutoCompleteTextView, «скрытый» адаптер?
atw_from.setAdapter(new ArrayAdapter(ctx, android.r.layout.simple_dropdown_item_1line, stages_adapter));
Допустим, мой пользователь хочет ввести «Középmező», он начинает набирать «Козе», и он будет предложено выбрать Középmező, пока это, не очень просто. Но что, если пользователь слишком ленив, чтобы набирать акценты (и многие из них ленивы), таким образом он будет вводить только Kozepmezo, тогда он не получит никакого предложения, так как в моей String нет Козепмезо. То, что я хочу, если он набирает «Козе», ему следует предложить Középmező, так что, даже если он не использует акценты, ему всегда будет предлагаться фактическое слово с акцентами.
В настоящее время у меня довольно глупое решение, у меня есть String [] с удвоенным размером оригинала [], первая половина содержит слова с акцентами, вторая содержит разгромленные версии. Итак, теперь, если он наберет Кёзе, ему предложит Középmező, и если он наберет Koze, ему будет предложено Kozepmezo. Он работает, потому что сервер может обрабатывать обе версии, но он просто выглядит глупым, и я хочу его решить.
Из чего я понимаю, я должен сделать полный пользовательский адаптер. Это лучший подход, или есть ли какое-либо решение, включенное в SDK? Если я должен сделать пользовательский адаптер, может ли кто-нибудь указать мне в правильном направлении, как это сделать? :)
EDIT: добавлен мой собственный ответ, должен работать для всех, приветствия для другого ответа, который направил меня на хорошее направление!
Слишком плохо, что вы слышали, «Я могу решить вашу проблему с помощью моего предыдущего решения. Если вы (все еще) заинтересованы, я могу опубликовать решение, которое я написал пару недель назад? Мы используем внутреннюю библиотеку для упрощения общих задач, но фильтрующая часть должна быть относительно нетронутой. –
Я всегда интересовался лучшими решениями! :) Если вы не против, я бы посмотрел на него. Во всяком случае, ваш ответ указал мне в направлении, которое заставило меня решить мою проблему, поэтому большой вам уже нужен. Плюс я думал о том, чтобы полностью переписать некоторые части этого массива ArrayAdapter, так как для общего он может быть стабильным, но для моего случая ему не нужны дополнительные массивы, что уменьшает время памяти/процессора, которое потребуется для фильтрации. – hundeva
Хорошо, я добавил код, который я сейчас использую в одном из моих проектов, к моему более раннему ответу. Самый интересный бит для вас - переопределенный метод getFilter. Надеюсь, это будет иметь смысл для вас. :) –