When displaying databse items in listview , it's being multiplied every time i change my tabs
===

I have 3 tabs , and in one of my tabs i have a listview , which is fetching items from a sqlite database . 

The problem is when i change to some other tab , and come back to this tab , my listview is showing the database items 2 times , and it's multiplying every time i change my tabs . 



Here's my code for tab showing listview : 

    public class LaundryActivity extends Fragment
       {

        private ListView mListView;
	private DatabaseHandler db;
	List my = new ArrayList();
	MyListAdapter madapter ;


         //.....

         //...
	public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
	{
		MyItem i;
		LinearLayout mylayout = (LinearLayout) inflater.inflate(R.layout.my_layout, container, false);

		
		List<MyItem> l = db.getAllMyItem();
		
		while(!l.isEmpty() )
		{
			i = l.get(0);
			l.remove(0);
			my.add(new MyList(i.getName(),0));
		}


		mListView = (ListView) mylayout.findViewById(R.id.list);
		madapter = new MyListAdapter(getActivity(), my);

		mListView.setAdapter(madapter);
		
            

      }


I know it's my while loop which is fetching the results again and again from database , but what could i do to show my results retrieved from database only once , even after changing tabs and coming back to this fragment tab . 