Update Fragment Data After Newinstance()
Basically I have my fragment public class FragmentDashboard extends Fragment { public static FragmentDashboard newInstance() { FragmentDashboard
Solution 1:
You can use a local field to contains your data and use it in your onCreateView
method :
publicclassFragmentDashboardextendsFragment {
privateObject myData=null;
privateTextView myTextView = null;
publicstaticFragmentDashboardnewInstance() {
FragmentDashboard frag = newFragmentDashboard();
return frag;
}
publicvoidupdateData(Objectobject){
myData = object;
if(myTextView != null)
myTextView.setText(myData);
}
@OverridepublicViewonCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_dashboard, container, false);
myTextView = (TextView) view.findViewById(R.id.myTextView );
if(myData != null && myTextView != null)
myTextView.setText(myData);
}
}
Solution 2:
It isn't a good practice to set Data like updateData(Object ) . Make your model class parcelable or serializable and pass it in putExtra and get it in onViewCreated.
publicstaticFragmentDashboardnewInstance(Objectobject) {
Bundle args = newBundle();
args.putParcelable("yourModelClass",object);
FragmentDashboard frag = newFragmentDashboard();
frag.setArguments(args);
return frag;
}
And in onViewCreated
if(getArguments!=null)yourModelClassObject=getArguments().getParcelable("yourModelClass");if(yourModelClassObject!=null)textView.setText(yourModelClassObject.getField());
I have written code orally . May contain mistakes.
Post a Comment for "Update Fragment Data After Newinstance()"