2017-02-04 1 views
0

두 조각 사이에 문자열을 전달하고 있습니다. ONSTART passedPushId에서android args.getString은 onStart 외부에서 null을 제공합니다.

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 외부 문자열을 얻을 수 없습니다. 하지만 for 루프에서 passedPushId를 null로 사용하려면 ...

답변

0

onCreateView()onStart()보다 먼저 호출됩니다. 일반적으로 인스턴스 변수는 안에있는 onCreate()이 아닌 onStart()으로 초기화해야합니다. 이는 부분적으로는 프래그먼트 수명주기의 초기 단계이기 때문입니다.

관련 문제