Быстрое переключение между фрагментами моего приложения, как я могу избежать этого? - PullRequest
0 голосов
/ 04 апреля 2020

Я новичок ie в программировании. Я добавляю записи в спиннер с данными из firebase, все в порядке, но когда я быстро переключаюсь между фрагментами, происходит ошибка. Я знаю, что проблема в том, что я использую "getActivity" при использовании фрагмента , и код все еще выполняется, хотя фрагмент больше не прикреплен. И это проблема. Есть ли возможность прикрепить адаптер к спиннеру из действия, а не из фрагмента? Имо, что могло бы избежать этой проблемы, но я не знаю, как это сделать? Вот код


                ArrayAdapter dania = new ArrayAdapter<>(getActivity(),
android.R.layout.simple_spinner_item, menulist);  //I KNOW THAT THE PROBLEM IS HERE getActivity() 

                ArrayAdapter adodatki = new ArrayAdapter<>(getActivity(),
android.R.layout.simple_spinner_item, menudodatkilist); //I KNOW THAT THE PROBLEM IS HERE getActivity() 

                dania.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
                adodatki.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
                danie1spinner.setAdapter(dania);
                danie2spinner.setAdapter(adodatki);

Я открыт для всех предложений. Спасибо за все ответы :)

Ответы [ 2 ]

0 голосов
/ 04 апреля 2020

ArrayAdapter требует Context в качестве первого параметра. Просто передайте контекст фрагмента. (Я думаю, что это GetView ())

0 голосов
/ 04 апреля 2020

Спасибо @SteveM, для меня это сработало, чтобы использовать

if (getActivity() != null)
{
 ArrayAdapter dania = new ArrayAdapter<>(getActivity(),
android.R.layout.simple_spinner_item, menulist);  //I KNOW THAT THE PROBLEM IS HERE getActivity() 

                ArrayAdapter adodatki = new ArrayAdapter<>(getActivity(),
android.R.layout.simple_spinner_item, menudodatkilist); //I KNOW THAT THE PROBLEM IS HERE getActivity() 

                dania.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
                adodatki.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
                danie1spinner.setAdapter(dania);
                danie2spinner.setAdapter(adodatki);
}

еще раз спасибо за простую идею: D

...