Dilazak
Dilazak

Reputation: 149

ListView is not updating in a fragment

I have 5 fragments in an activity. And they are being showed using tabs/viewpager. Suppose they are nameD as ONE, TWO, THREE, FOUR and FIVE. I am displaying data in all fragments as ListView. I am inflating data in ListView from database cursor. The data is updated normally when i perform an add or delete in the same fragment. The problem occurs when i send/move a data from one fragment to another.

EXAMPLE OF PROBLEM: I send/move data from fragment ONE to fragment TWO. Then I tap on fragment TWO to view data. It is not there. The data is shown when I tap on fragment FOUR or fragment FIVE and then come back to fragment ONE. Or if the app is restarted or any other Activity comes in front and goes back.

The data is not shown by clicking the adjacent tabs or swapping to adjacent tabs. And then coming back to the tab from which data was moved

I am sure someone of you must have an idea whats happening here and tell me how to solve the issue.

onCreateView

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

    View view = inflater.inflate(R.layout.frag_dramas, container, false);
    setHasOptionsMenu(true);
    list = (ListView) view.findViewById(R.id.mylist);
    return view;
}

onResume

@Override
public void onResume() {
    super.onResume();
    getListView();
}

onViewCreated

@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
    fab.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            add();
        }
    });
}

There are other methods in the fragment too but they are not relevant to the issue. I Think these three methods are relevant. And i have no onCreate() method in the fragment..

Upvotes: 0

Views: 109

Answers (1)

Paresh Dudhat
Paresh Dudhat

Reputation: 1246

If Fragment is already in the memory you should use BroadcastReceiver to notify other fragments whenever any data is added/removed/updated.

You can try EventBus as well. https://github.com/greenrobot/EventBus

Upvotes: 1

Related Questions