2014-11-20 2 views
0

я прохожу bundle от деятельности к fragment с использованием setArgument, и когда я получить его обратно из fragment с помощью getArgument, я нашел это null несмотря на это имеет значение.Bundle содержит данные, но в фрагменте это Null

В приведенном ниже коде я показываю, как я получаю bundle в действии fragment.

Для определения ясности, у меня есть activity_1, который проходит bundle до activity_2. В activity_2 i создайте экземпляр 2 fragments и назначьте их actionTabs. От activity_2, я проверил bundle и получил значения, основанные на этом тесте, я передал их на 2 fragments. В одном из Fragments я извлекаю его, используя getArgument, и это null. см. код ниже ffro, уточните, как я его извлекаю.

Code_Fragment

public class Sub_Frag extends Fragment { 
private final Bundle dataBundle = getArguments(); 
... 
... 
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle 
savedInstanceState) { 
//here i check if the bundle is null or not, and it is null 

ответ

1

Вы должны называть это, когда создается фрагмент. Заменить строку 2 следующим образом:

private Bundle dataBundle; 

И получить аргументы в onCreateView:

public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle 
savedInstanceState) { 

    dataBundle = getArguments(); 

} 
+0

но как переменная databundle объявляется окончательным без инициализации? – user2121

+0

Почему он должен быть «последним»? –

+0

Я знаю, что это работает без окончательного модификатора, но поскольку bundle = fetArgument должен быть только прочитанным, я думаю, он должен быть окончательным или что вы думаете? – user2121

Смежные вопросы