Деформировано, что, когда вам нужно передать аргумент произвольному фрагменту диалога, вы его связываете, прежде чем использовать его.Как передать данные в фрагмент диалога во время его отображения
Пример:
class MyDFrag extends DialogFragment{
//Empty Construct
public MyDFrag(){}
public static MyDFrag newInstance(){
MyDFrag fragment = new MyDFrag();
args = new Bundle();
fragment.setArgument(args);
}
}
Это работает великолепно для большинства пути, но только если вы пройдете эти аргументы перед тем как показывать диалоговый фрагмент.
Моя проблема заключается в том, что у меня есть текстовое окно в моем диалоговом окне и вы хотите изменить его значение, когда что-то происходит в его родительской активности, пока отображается диалоговое окно.
Передача аргумента после показа диалога не влияет на это изменение.
В моей OnCreate:
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
textbox = (TextView) view.findViewById(R.id.textish);
if(args.containsKey("status")){
textbox.setText(getArguments().getString("status"));
}
}
В диалоговом классе, у меня есть общественный диалог, который устанавливает значение TextView, которое я тогда называют в моей основной деятельности в какой-то момент.
public void setStatus(String value){
args.putString("status", value);
}
Так что, когда я буду готов в моей основной деятельности я называю
dialog.setStatus("ok");
это работает только, если я запускать код перед показом диалога не в то время как его показ. Есть ли способ достичь этого?
Предложение оценили, спасибо
Спасибо за предложение ребята, они где все полезные – Tajinere
Используйте LocalBroadcastManager https://developer.android.com/reference/android/support/v4/content/LocalBroadcastManager.html отправить трансляцию из MainFragment и получить его в диалоге Фрагмент –