2017-01-09 68 views
0

我想從我的活動發送數據到我的片段。我現在正在做的是以下。getArguments返回null

String itemDescription = workAssignmentItem.getDescription(); 
Bundle bundle = new Bundle(); 
bundle.putString("itemDescription", itemDescription); 
FirstFragment.newInstance(bundle); 

然後在我的片段我做的:

public static FirstFragment newInstance(Bundle bundle) { 
    FirstFragment fragment = new FirstFragment(); 
    fragment.setArguments(bundle); 
    return fragment; 
} 

但是,當我嘗試做 'getArguments()的getString( 「itemDescription」);' 在我的onCreate,像這樣:

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

    description = getArguments().getString("itemDescription"); 

} 

它不起作用。 getArguments返回null。我不太確定它爲什麼會返回null,因爲互聯網上的多個來源都說這是做到這一點的方法。

任何人都可以指向正確的方向嗎? 由於事先

+0

你是否正在執行片段事務以顯示片段並在創建片段之後立場,還是碎片已經可見?如果是的話,通過從FragmentManager獲取Fragment實例設置參數 –

+0

我回答這個問題。請接受我的答案,如果它的作品。 –

回答

0

你不需要捆綁來傳遞一個字符串片段

String itemDescription = workAssignmentItem.getDescription(); 
FirstFragment.newInstance(itemDescription); 

片段切換到這樣的:

public static FirstFragment newInstance(String itemDescription){ 
    FirstFragment fragment=new FirstFragment(); 
    bundle args=new Bundle(); 
    args.putString("itemDescription",itemDescription); 
    fragment.setArguments(args); 
    return fragment; 
} 

和的onCreate這樣的:

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    description = getArguments().getString("itemDescription"); 
} 
+0

把一個捆綁包放在一個捆綁包中,會有幫助嗎? –

+0

@MarkKeen是!!它的作品,但他實際上選擇了一種錯誤的方式。他通過fragment.it更好地傳遞一個字符串。 –

+0

您的評論沒有意義,並與您的答案相矛盾。 –