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

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

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

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

20.05.2015, 14:56. Просмотров 311. Ответов 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
Есть необходимость в программе менять значение TextView находящегося во фрагменте. Фрагмент должен выводится в контейнер. И затем я...

Обращение к элементам другой Активити - Программирование Android
Есть xml-файл главной активити main.xml который содержит поле ввода <EditText android:id="@+id/edPhone" ...

Обращение к элементам активити из другого класса - Программирование Android
Добрый день. Ломаю голову битый час, все не могу понять, почему у меня не получается. Опишу по шагам. Создал проект андроид (в эклипсе),...

Как реализовать обращение из SurfacView к TextView в основной Активити - Программирование Android
Всем Добрый День! Не знаю правильно или нет, но хотел сделать разметку поделив экран на две области, нижняя область отображает графику, в...

На телефоне highscreen 3 на всех активити происходит быстрый самовозврат к главной активити - Программирование Android
Сделал меню в виде ListView. При клике на меню запускаются активити. На эмуляторе работает, на телефоне моем LG все работает. На телефоне...

Как вызвать метод в активити классе из обычного не активити класса? - Программирование 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");
        }
    }
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.05.2015, 15:45
Привет! Вот еще темы с ответами:

Вызов новой активити не из класса активити - Программирование Android
Есть 4 класса: 1) WelcomeActivity; 2) MainActivity; 3) PopUpActivity; 4) Client. Программа работает с сервером и получает...

Отображение активити поверх другого активити - Программирование Android
Ребят подскажите пожалуйста как такое сделать. Есть активити с картой, по нажатию кнопки настройки, нужно открыть активити с настройками,...

Изменение параметров активити из другого активити - Программирование Android
Как сделать так чтобы из первого активити поменять final ImageView img=(ImageView)findViewById(R.id.image1); ...

Передача даных с фрагмента к фрагменту! - Программирование Android
Вопрос возможно глупый но все ж... Искал в инете но ответ на свой вопрос найти не смог. Есть активность которая является хостом для 2...


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

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