将数据从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
关键字。他是对的!
相同的问题。 – CODE1010101010101
然后当你创建片段时,jsonString实际上是空的。我会建议传递一些随机字符串,只是为了看到它按预期工作,如果它的工作,调查为什么jsonString来null – Tudor
我的代码就像'bundle.putString(“edttext”,jsonString); fragobj.setArguments(bundle);' 所以当我登录bundel我得到的数据,我上面提醒,是的,我试着你说的,返回null。 – CODE1010101010101