Je sais que c'est une réponse tardive mais j'ai été confronté à un problème similaire et j'ai réussi à le résoudre en utilisant notifyDataSetChanged()
au bon endroit.
Ma situation était donc la suivante.
Je devais mettre à jour une vue de liste dans un onglet de barre d'action (fragment) avec le contenu renvoyé par une activité complètement différente. Au départ, le listview ne reflétait aucun changement. Cependant, lorsque je cliquais sur un autre onglet, puis revenais à l'onglet souhaité, la liste était mise à jour avec le contenu correct de l'autre activité. Pour résoudre ce problème, j'ai donc utilisé notifyDataSetChanged()
de l'adaptateur de la barre d'action dans le code de l'activité qui devait retourner les données.
Voici l'extrait de code que j'ai utilisé dans l'activité.
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId())
{
case R.id.action_new_forward:
FragmentTab2.mListAdapter.notifyDataSetChanged();//this updates the adapter in my action bar tab
Intent ina = new Intent(getApplicationContext(), MainActivity.class);
ina.putExtra("stra", values1);
startActivity(ina);// This is the code to start the parent activity of my action bar tab(fragment).
}
}
Cette activité renverrait des données à FragmentTab2
et cela mettrait directement à jour mon listview dans FragmentTab2
.
J'espère que quelqu'un trouvera cela utile !