2013-05-22 5 views
2

J'ai une application android avec une activité principale étendant une liste d'activités.Appel d'un DialogFragment à partir d'un ListActivity

public class Main_activity extends ListActivity {...} 

Dans le menu d'options, je souhaite envoyer une partie des articles par courrier. Pour sélectionner les éléments, je souhaite afficher un fragment de dialogue.

Tout fonctionne correctement, mais je dois commencer une nouvelle intention (perdre mon listview), ce qui étend FragmentActivity, car il n'est pas possible d'utiliser getSupportFragmentManager hors de ListActivity.

startActivity (new Intent (this, Fragment_Activity.class)); 

et

public class Fragment_Activity extends FragmentActivity implements EditNameDialogListener {...} 

Est-il possible d'afficher le DialogFragment directement de mon Main_activity? Qu'est-ce que je dois changer?

Répondre

0

Je suggère que vous modifiez Main_activity pour étendre FragmentActivity et déplacer votre code de liste à un ListFragment. Avec votre activité principale prolongeant FragmentActivity, vous avez la possibilité d'afficher le fragment de dialogue sans perdre ListView et les données sous-jacentes.

MISE À JOUR: Puisque vous ne voulez pas changer votre conception actuelle, je vois deux voies à suivre:

1 Déplacez les données de la liste sur la ListActivity et dans un modèle de données d'une sorte de sorte que vous ne faites pas le perdre. Créez une classe statique pour contenir les données de la liste ou stockez-la dans SharedPreferences.

2 Utilisez un custom dialog au lieu d'un DialogFragment

+0

Je ne l'ai pas fait quoi que ce soit avec des fragments jusqu'à présent. Après avoir lu un moment, cela ne semble pas facile. Je pense, je vais devoir rester avec mon code actuel, jusqu'à ce que j'ai le temps de comprendre les fragments. Merci pour votre réponse ... – Berolino

+0

Ce n'est vraiment pas si complexe, mais si vous ne voulez pas le faire maintenant, je suppose que vous devrez déplacer les données de la liste de ListActivity vers un modèle de données quelconque pour ne pas le perdre. Créer une classe statique pour contenir les données de la liste ou les stocker dans SharedPreferences – britzl

Questions connexes