Подтвердить что ты не робот

Android: как фрагмент может принимать глобальную переменную Activity

У меня есть активность с глобальной переменной int x, как можно фрагментировать, чтобы получить текущее значение переменной x его активности?

4b9b3361

Ответ 1

Либо установите var как public static, либо используйте

((MyActivity)getActivity()).getX()

Ответ 2

Использование общедоступной статической переменной - не лучший способ связи между активностью и фрагментом. Проверьте этот ответ для других способов:

Документация для Android рекомендует использовать интерфейс, когда Fragment хочет связываться с Activity. И когда Activity хочет связаться с Фрагментом, Activity должно получить ссылку на фрагмент (с findFragmentById), а затем вызвать Открытый метод фрагментации.

Причиной этого является то, что фрагменты отделены от активности, в которой они находятся. Их можно использовать повторно в любом действии. Если вы напрямую обращаетесь к родительской активности или одной из ее глобальных переменных изнутри фрагмента, вы больше не сможете использовать этот фрагмент в другой Деятельности.

Ответ 3

***In your Activity
==================
Bundle args = new Bundle();
args.putInt("something", Whatever you want to pass);
fragA.setArguments(args);

In your Fragment
==================
 Bundle args = getArguments();
//whatever you want to get ,get it here.
//for example integer given     
    int index = args.getInt("index", 0);