将数据从IntentService发送到片段

将数据从IntentService发送到片段

问题描述:

正如我试图在这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")); 

什么是做到这一点的最好方法是什么?

这是因为您首先使用正确的数据设置正确的片段参数,然后在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