Skip to content Skip to sidebar Skip to footer

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()"