2017-05-27 121 views
2

正如我試圖在這question BroadCastReciever,我試過論據也在我的日誌中傳遞數據沒關係。將數據從IntentService發送到片段

Bundle bundle = new Bundle(); 
ArticleDetailFragment fragobj = new ArticleDetailFragment().newInstance2(jsonString); 
fragobj.setArguments(bundle); 
Log.i(TAG, "onHandleIntent: " + bundle); 

但我收到空:我onCreateView()

public static ArticleDetailFragment newInstance2(String item) { 
     Bundle arguments = new Bundle(); 
     arguments.putString("edttext", item); 
     ArticleDetailFragment fragment = new ArticleDetailFragment(); 
     fragment.setArguments(arguments); 
     return fragment; 
    } 

Log.i(TAG, "onCreateViewBundle: " + getArguments().getString("edttext")); 

什麼是做到這一點的最好方法是什麼?

回答

0

這是因爲您首先使用正確的數據設置正確的片段參數,然後在newInstance2之外重寫它。

Bundle bundle = new Bundle(); 
ArticleDetailFragment fragobj = new ArticleDetailFragment().newInstance2(jsonString); 
fragobj.setArguments(bundle); // <- here you override the arguments that were set inside newInstance with a bundle that has no data in it 
Log.i(TAG, "onHandleIntent: " + bundle); 

應該

ArticleDetailFragment fragobj = ArticleDetailFragment().newInstance2(jsonString); 
Log.i(TAG, "onHandleIntent: " + fragobj.getArguments().getString("edttext")); 

而且對方回答說,除去new關鍵字。他是對的!

+0

相同的問題。 – CODE1010101010101

+0

然後當你創建片段時,jsonString實際上是空的。我會建議傳遞一些隨機字符串,只是爲了看到它按預期工作,如果它的工作,調查爲什麼jsonString來null – Tudor

+0

我的代碼就像'bundle.putString(「edttext」,jsonString); fragobj.setArguments(bundle);' 所以當我登錄bundel我得到的數據,我上面提醒,是的,我試着你說的,返回null。 – CODE1010101010101

相關問題