2017-02-04 3 views
0

Я передаю строку между двумя фрагментами. Это работает, но по причине я не могу получить строку за пределами OnStart ...android args.getString дает null вне onStart

public class EventSelectFriendFragment extends Fragment { 
final static String DATA_RECEIVE = "data_receive"; 
String passedPushId; 
Button create; 

@Override 
public void onStart() { 
    super.onStart(); 
    Bundle args = getArguments(); 
    if (args != null) { 
     passedPushId = args.getString(DATA_RECEIVE); 
     Log.d("passed id",args.getString(DATA_RECEIVE)); 
    } 
} 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
} 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    // Inflate the layout for this fragment 
    View rootView = inflater.inflate(R.layout.fragment_event_select_friend, container, false); 




    create= (Button) rootView.findViewById(R.id.btnCreate); 

    btnMaakEvent.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      for(int i = selectedFriends.size()-1 ; i >= 0; i--){ 

       Log.d("array: ", i + selectedFriends.get(i).getFirstName()); 
       Log.d("passedPushId: ", passedPushId); 

      }    
     } 
    }); 

    return rootView; 
} 

}

В OnStart passedPushId дает мне строку из другого фрагмента. Но когда я хочу использовать его в цикле для передачи, пройденный PushId имеет значение null ...

ответ

0

onCreateView() называется раньше onStart(). Вообще говоря, вы должны инициализировать переменные экземпляра из аргументов Bundle внутри onCreate(), а не onStart(), так как это намного раньше в жизненном цикле фрагмента.

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