Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Yushka
4 / 4 / 1
Регистрация: 24.07.2013
Сообщений: 80
#1

Обращение к фрагменту вне активити - Программирование Android

20.05.2015, 14:56. Просмотров 300. Ответов 2
Метки нет (Все метки)

Здравствуйте, форумчане!
Назрел такой вот вопрос: создан класс BannerFragment, унаследованный от фрагмента. В нём переопределён OnCreateView(), добавлены пара методов. Далее, есть класс-посредник, в котором задача создать на переданной активити (в переданном контексте) этот самый BannerFragment (также передаётся айдишник фрагмента с лэйаута активити, куда должен поселиться наш фрагмент). Но в этом самом посреднике ловим нуллпоинтер, фрагмент-манагер не хочет с нами сотрудничать=). Как бы обогнуть эту проблему?..
Java
1
2
3
4
5
6
7
8
public class BannerFragment extends Fragment {
 
    WebView viewer;
 
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        return inflater.inflate(R.layout.banner_fragment, container, false);
    }
В принципе, мне понятно, что манагер-то не связан с активностью получается, но как это всё сделать правильно - не доезжаю(.
Java
1
2
3
4
5
6
7
8
9
 
 public void show(Context context, String unit_id, int fragmentId){
BannerFragment bannerFragment=new BannerFragment();
 bannerFragment.getFragmentManager().findFragmentById(fragmentId);
 if (bannerFragment.isInLayout()) {
            //bannerFragment.goToLink(link);
            Log.d(TAG, "Fragment is in layout");
        }
}
Активность
Java
1
2
3
4
5
6
7
8
9
10
@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //=============================================================
        final String TOKEN=" ";
        Init init=new Init(this, TOKEN);
        init.show(this, "1", R.id.banner_fragment);
        //=============================================================
    }
Заранее спасибо за помощь=)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.05.2015, 14:56     Обращение к фрагменту вне активити
Посмотрите здесь:
Обращение к элементам другой Активити Android
Обращение к элементам фрагмента из активити Android
Android Обращение к элементам активити из другого класса
Android Как реализовать обращение из SurfacView к TextView в основной Активити
Android Передача даных с фрагмента к фрагменту!
Обратиться к фрагменту находящемуся в ViewPager Android
Передача одному фрагменту объекта из другого Android
Установить стрелку "назад" в action bar, что бы возвращаться к первому фрагменту Android
Android Активити
Из Активити в Фрагмент Android
Android Вызов активити
Активити и фрагмент Android

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,070
20.05.2015, 15:37     Обращение к фрагменту вне активити #2
Где null то?
Yushka
4 / 4 / 1
Регистрация: 24.07.2013
Сообщений: 80
20.05.2015, 15:45  [ТС]     Обращение к фрагменту вне активити #3
В классе-посреднике нулл фрагмента. Был=).
Переделала путём передачи не айдишника фрагмента, а самого фрагмента и всё заработало=).
Java
1
2
3
4
5
6
7
8
9
10
11
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //=============================================================
        final String TOKEN=" ";
        Init init=new Init(this, TOKEN);//context+token
        Fragment fragment=getFragmentManager().findFragmentById(R.id.banner_fragment);
        init.showAd(this, "1", fragment);
        //=============================================================
    }
Посредник
Java
1
2
3
4
5
6
7
public void showAd(Context context, String unit_id, Fragment fragment){       
        BannerFragment bannerFragment=(BannerFragment)fragment;
        if (bannerFragment.isInLayout()) {
            bannerFragment.goToLink(staticNotFS);
            Log.d(TAG, "Fragment is in layout");
        }
    }
Yandex
Объявления
20.05.2015, 15:45     Обращение к фрагменту вне активити
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru