[БЕЗ_ЗВУКА] В данном занятии мы с вами добавим в поле логина список успешно авторизованных пользователей. То есть мы будем нажимать на логин, и у нас под ним будет выпадать список пользователей, которые уже авторизованы. Как вы помните, в предыдущих занятиях мы добавили логику авторизации, и я сказал то, что как бы в самом фрагменте ее держать не хорошо, она должна храниться в какой-нибудь другой сущности. И мы эту логику перенесли в SharedPreferencesHelper. Давайте посмотрим, как это выглядит теперь. Откроем проект, перейдем в AuthFragment, в m. И посмотрим, как теперь выглядит mOnEnterClickListener. Здесь у нас появился метод login. Если вас будет интересовать какая-то бизнес-логика, которую мы не разбирали при вас, вы просто сможете посмотреть ее в проекте. mSharedPreferencesHelper.login. Вся та же логика, что была до этого, просто она перенеслась в SharedPrefencesHelper. Чтобы показать выпадающий список, нам нужно: перейти в layout, fr_auth, открыть preview, заменить EditText на AutoCompleteTextView, перейти в AuthFragment, заменить EditText логина на AutoCompleteTextView. Далее, AutoCompleteTextView будет требовать адаптер. Мы будем использовать простой адаптер для отображения строк. Добавим private ArrayAdapter с типом string. Назовем его mlogined Users. Далее, проинициализируем наш адаптер. mlogined Users. UsersAdapter я бы даже его назвал, = newArrayAdapter, в который мы сначала передаем контекст (можно передать getActivity), далее передаем ему ссылку на наш layout-файл. Мы будем использовать стандартные системные ресурсы Андроида. R.layout. simple_ dropdown_item_1line. И передать ему сами данные для отображения. Чтобы это сделать, мы берем mSharedPreferencesHelper и вызываем у него метод get SuccessLogins. Вот и все. Но, мы забыли добавить наш адаптер в сам AutoCompleteTextView. Давайте исправим это. mLogin.set Adapter, и передаем ему наш ArrayAdapter, который мы только что проинициализировали. И запустим наш эмулятор. [БЕЗ_СЛОВ] Чтобы проверить, работает ли у нас, для начала зарегистрируем нового пользователя. Введем email, пароль какой-нибудь, состоящий даже из одного символа, зарегистрироваться. Успешно зарегистрировались. И авторизуемся в приложении. a.a. @a.a. и введем пароль. Нажмем «войти». Вот мы успешно и вошли. Теперь разлогаутимся, нажмем на логин, и мы не видим выпадающего списка. Почему, спросите вы. Потому что мы с вами не добавили показ нашего выпадающего списка, когда у нас изменяется фокус. Давайте исправим это. Создадим FocusChangeListener, private OnFocus ChangeListener, назовем его mOn LoginFocusChangeListener, = newOn FocusChangeListener, boolean b переименуем в HasFocus, чтобы было понятнее. И если у нас есть фокус, то в нашем AutoCompleteTextView вызовем метод ShowDropDown. Также мы забыли добавить OnFocusChangeListener в наш AutoCompleteTextView. Давайте это исправим. setOnFocusChangeListener (m OnLoginFocusChangeListener). Запустим наш эмулятор и посмотрим, работает ли он. Да, как мы видим, наш выпадающий список показался. А значит, мы все сделали правильно. В данном занятии мы с вами научились работать с AutoCompleteText View, чтобы отображать выпадающие списки.