Отправить данные из IntentService во фрагмент
Поскольку я попробовал BroadCastReciever в этом вопросе, я попытался передать данные с аргументами тоже в моем журнале, это нормально.
Bundle bundle = new Bundle();
ArticleDetailFragment fragobj = new ArticleDetailFragment().newInstance2(jsonString);
fragobj.setArguments(bundle);
Log.i(TAG, "onHandleIntent: " + bundle);
но я получил ноль:
public static ArticleDetailFragment newInstance2(String item) {
Bundle arguments = new Bundle();
arguments.putString("edttext", item);
ArticleDetailFragment fragment = new ArticleDetailFragment();
fragment.setArguments(arguments);
return fragment;
}
в моем onCreateView():
Log.i(TAG, "onCreateViewBundle: " + getArguments().getString("edttext"));
Каков наилучший способ сделать это?
1 ответ
Это потому, что сначала вы устанавливаете правильные аргументы фрагмента с правильными данными, а затем переопределяете их вне 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
ключевое слово. Он прав!