Проблеми с показване на текста във втория фрагмент
Здравейте колеги,
Опитвам се да създам два фрагмента, така че натискането на бутон в първия фрагмент да промени текста във втория фрагмент. Обаче текстът остава непроменен, въпреки че следвам инструкциите от лекцията.
Някой би ли прегледал кода за да провери на какво се дължи това и дали имам някакъв пропуск? Проектът може да се изтегли от този линк:
https://www.dropbox.com/s/bwgrzytsc5bfn7c/FragmentSolution.zip
Благодаря!
Марян
Здравей Владимир,
Благодаря ти, че отдели време да пуснеш проекта! Оказа се, че този код не работи на симулатор Nexus 5 API 22. Пробвах го с Nexus 5 API 23 и вече е ОК, т.е. получавам текста във втория фрагмент. Колегите да го имат предвид. :-)
Обаче има ли някакви причини да не работи на API 22? Това е малко странно, и все още нямам обяснение за поведението.
Поздрави,
Марян
Здравей,
Поразрових се из документацията и отрких това:
Предполагам, че по-старото устройство очаква горния метод, който подава Activity, а ние му подаваме Context и затова не работи.
Да, сигурно е това. Благодаря!
Марян
Единият вариант е този, но е deprecated!!!
@Override public void onAttach(Activity activity) { super.onAttach(activity); onButtonClicked = (IFragmentButtonClicked)activity; }
Другият е:
@Override public void onAttach(Context context) { super.onAttach(context); Activity activity; activity = (Activity) context; onButtonClicked = (IFragmentButtonClicked)activity; }
И аз си направих втората задача, по указания начин и резултата е аналогичен. Пуснах примера ти на телефон с Android 4.1.2, - не работи, не се променя текста на textview-то във втория фрагмент. Ок deprecated, но това как да го направим за по-стари версии да работи. Някой има ли идея?
Аз го тествам на Android 4.2.2 и двата варианта работят. Опита ли втория с кастване на Activity?
Получи сe с deprecated варианта, с cast не сработи. Също така без cast и без deprecated варианта като изполвах