Софтуерно Инженерство
Loading...
Maryan avatar Maryan 1 Точки

Проблеми с показване на текста във втория фрагмент

Здравейте колеги,

Опитвам се да създам два фрагмента, така че натискането на бутон в първия фрагмент да промени текста във втория фрагмент. Обаче текстът остава непроменен, въпреки че следвам инструкциите от лекцията.

Някой би ли прегледал кода за да провери на какво се дължи това и дали имам някакъв пропуск? Проектът може да се изтегли от този линк:

https://www.dropbox.com/s/bwgrzytsc5bfn7c/FragmentSolution.zip

Благодаря!

Марян

Тагове:
0
Android Development
VladimirAnaniev avatar VladimirAnaniev 54 Точки

Здравей, 

Пуснах проекта ти и всичко си работи както трябва. Не виждам проблем в кода.

0
Maryan avatar Maryan 1 Точки

Здравей Владимир,

Благодаря ти, че отдели време да пуснеш проекта! Оказа се, че този код не работи на симулатор Nexus 5 API 22. Пробвах го с Nexus 5 API 23 и вече е ОК, т.е. получавам текста във втория фрагмент. Колегите да го имат предвид. :-)

Обаче има ли някакви причини да не работи на API 22? Това е малко странно, и все още нямам обяснение за поведението.

Поздрави,

Марян

0
VladimirAnaniev avatar VladimirAnaniev 54 Точки

Здравей,

Поразрових се из документацията и отрких това:

Предполагам, че по-старото устройство очаква горния метод, който подава Activity, а ние му подаваме Context и затова не работи. 

1
Maryan avatar Maryan 1 Точки

Да, сигурно е това. Благодаря!

Марян

 

0
RangelMarinov avatar RangelMarinov 0 Точки

Единият вариант е този, но е 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;
}
0
ElisavetaRaycheva avatar ElisavetaRaycheva 3 Точки

И аз си направих втората задача, по указания начин и резултата е аналогичен. Пуснах примера ти на телефон с Android 4.1.2,  - не работи, не се променя текста на textview-то във втория фрагмент. Ок deprecated, но това как да го направим за по-стари версии да работи. Някой има ли идея?

0
RangelMarinov avatar RangelMarinov 0 Точки

Аз го тествам на Android 4.2.2 и двата варианта работят. Опита ли втория с кастване на Activity? 

0
ElisavetaRaycheva avatar ElisavetaRaycheva 3 Точки

Получи сe с deprecated варианта, с cast не сработи. Също така без cast и без deprecated варианта като изполвах 

android.support.v4.app.Fragment вместо 
android.app.Fragment сработи.
0
22/09/2016 20:01:53