Tuesday, 27 August 2013

ListView in fragment duplicated when redisplayed

ListView in fragment duplicated when redisplayed

I am using a ListView in a Fragment. But when I switch between two
fragment and come back the listView has been duplicated..
I thinks it's because I creat the list View in onCreateView() But where
should I create the list view to avoid the second creation ?
Here my code:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
//inflate fragment_critere.xml
mView = inflater.inflate(R.layout.fragment_critere, container, false);
//Create Criteria list
populateCriteriaList();
//Create ListView
populateListView();
// Create the "Autre Critères"'s dialog
mDialogFragment = new MyDialogFragment();
// setOnclickListener on "Autre Critères"
LinearLayout mText = (LinearLayout)
mView.findViewById(R.id.other_critere);
mText.setClickable(true);
mText.setOnClickListener(new View.OnClickListener() {
public void onClick(final View view) {
// Open dialog on click
mDialogFragment.show(getActivity().getSupportFragmentManager(),
null);
}
});
return mView;
}
private void populateCriteriaList() {
mCriteria.add(new Criteria("Type de biens", new
String[]{"Appartement", "Maison", "Loft", "Terrain"}, new
boolean[]{true, true, false, false}, true, true));
mCriteria.add(new Criteria("Prix Minimum", 500000, true, "?"));
mCriteria.add(new Criteria("Surface Minimum", 100, true, "m²"));
mCriteria.add(new Criteria("Nombre de pièces minimium", new
String[]{"1 pièce", "2 pièces", "3 pièces", "4 pièces"}, new
boolean[]{false, false, true, false}, false, true));
mCriteria.add(new Criteria("Cave", new String[]{"Présent", "Absent"},
new boolean[]{false, true}, false, false));
}
private void populateListView() {
ArrayAdapter<Criteria> adapter = new MyCriteriaAdapter();
ListView mListView = (ListView) mView.findViewById(R.id.listView);
mListView.setAdapter(adapter);
}
Thanks in advance :)

No comments:

Post a Comment