androidandroid-fragmentsbroadcastreceiverfragmentandroid-listfragment

fragment data update from another fragment?


In my messaging app I have multiple contacts with messages . I have a main activity and two fragments, outerFragment and innerFragment.Latest message of each contact I am showing in outerfragment list . On click of each row of outerfragmrnt I am opening innerfragment which contain all message of individual contact.Now when I am deleting latest message from innerfragment than it is deleting but it is not updating in outerfragment.How can I update latest message in outerfragment when I am deleting latest message from innerfragment. How to achieve this in android ?


Solution

  • You can use listeners for this purpose. this can be achieved as follow

    create an interface as shown below:

    public interface myListener {
        public void updateView(boolean success, Object message);
    }
    

    make your OuterFragment implement this listener and override unimplemented methods:

    public class OuterFragment extends Fragment implements myListener {
    
        onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
            InnerFragment innerfrag = new InnerFragment();
            innerFrag.setmyListener(this);
        }
    
        updateView(boolean success, Object message) {
            // your code here
        }
    
    }
    

    create the setmyListener() method in InnerFragment

    InnerFragment extends Fragment {
    
        myListener listener;
    
        public void setmyListener (myListener listener){
            this.listener = listener
        }
    
    }
    

    make a callback from InnerFragment to outer by calling this method when you want to update the OuterFragment

    listener.updateView(success,message);