IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Remplacer un listFragment par la même classe


Sujet :

Android

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2007
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2007
    Messages : 142
    Points : 52
    Points
    52
    Par défaut Remplacer un listFragment par la même classe
    Bonjour,
    J'essaye en vain d'utiliser les listFfagment, mais je bloque lorsque je veux remplacer l'ancien fragment par le même fragement mais avec des données différente.

    Je m'explique:
    J'ai une ListFragement qui affiche des donnée (factices) et ce que j'essaye de faire tout simplement c'est de pouvoir remplacer le fragment en cours qui est un ListFragement par la même ListFragement mais avec des données différentes.
    Voici ma classe BasicListFragment :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    public class BasicListFragment extends ListFragment {
     
    	@Override
    	public void onActivityCreated(Bundle savedInstanceState) {
    		// 2
    		super.onActivityCreated(savedInstanceState);
    		setListAdapter(new ArrayAdapter<String>(getActivity(),
    				android.R.layout.simple_list_item_1, getArguments()
    						.getStringArray("test")));
     
    	}
     
    	@Override
    	public void onListItemClick(ListView l, View v, int position, long id) {
    		// TODO Auto-generated method stub
    		super.onListItemClick(l, v, position, id);
    		Toast.makeText(getActivity(), "" + position, Toast.LENGTH_SHORT).show();
    		FragmentTransaction ft = getFragmentManager().beginTransaction();
    		ft.replace(R.id.fragment_layout, new BasicListFragment());
    		ft.addToBackStack(null);
    		ft.commit();
     
    	}
     
    	@Override
    	public View onCreateView(LayoutInflater inflater, ViewGroup container,
    			Bundle savedInstanceState) {
    		// 1
    		return super.onCreateView(inflater, container, savedInstanceState);
    	}
     
    }
    J'ai le programme qui freeze avec une belle erreur;
    mais bizarement si je veux remplacer ce le fragment en cours par un autre type de fragment qui n'est pas ListFragment ça marche.

    des idées sur la façon de réaliser ce que je veux faire?

  2. #2
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Mais quelle est l'erreur ?

    A vue de nez on dirait une NullPointerException sur le getArguments().getStringArray() puisqu'aucun argument n'est passé au nouveau fragment...
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2007
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2007
    Messages : 142
    Points : 52
    Points
    52
    Par défaut
    En ft je récupérè bien les valeurs passé depuis l'activity, et cela prouve bien que c'est grâce à ces données que je construit mon listView.

    Comme je disait , si je change de fragment, cad au lieu d'instancier BasicListFragment(), si j'instancie BasicFragment() ca marche.

  4. #4
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Pour le premier fragment oui...

    Mais le deuxieme... on ne lui passe jamais d'arguments.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ft.replace(R.id.fragment_layout, new BasicListFragment());
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  5. #5
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2007
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2007
    Messages : 142
    Points : 52
    Points
    52
    Par défaut
    effectivement je vais voir cela merci

  6. #6
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2007
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2007
    Messages : 142
    Points : 52
    Points
    52
    Par défaut
    en fait je ne vois vraiment pas comment je peux lui passer des arguments,

  7. #7
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2007
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2007
    Messages : 142
    Points : 52
    Points
    52
    Par défaut
    JE n'arrive vraiment pas à lui passer des données, est ce que tu peux réxpliquer stp?

  8. #8
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Et comment fais tu dans l'activité ?
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  9. #9
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2007
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2007
    Messages : 142
    Points : 52
    Points
    52
    Par défaut
    Bonsoir,
    Oui je viens de remarquer aussi, ca l'air de fonctionner en tout cas il me reste plus qu'a généré mes données de façon dynamique.
    voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    public class MenuListFragment extends ListFragment {
    	private String[] menu = {"Elixir unitaire","Elixir urgence"};
    	@Override
    	public View onCreateView(LayoutInflater inflater, ViewGroup container,
    			Bundle savedInstanceState) {
    		return inflater.inflate(R.layout.list_view, container, false);
    	}
     
    	@Override
    	public void onActivityCreated(Bundle savedInstanceState) {
    		String[] data = getArguments().getStringArray("data");
    		setListAdapter(new ArrayAdapter<String>(getActivity(),
    				android.R.layout.simple_list_item_1, data));
    		super.onActivityCreated(savedInstanceState);
    	}
     
    	@Override
    	public void onListItemClick(ListView l, View v, int position, long id) {
    		super.onListItemClick(l, v, position, id);
    		TextView mTextView = (TextView) v;
    		MenuListFragment lf = new MenuListFragment();
    		Toast.makeText(getActivity(),mTextView.getText() , Toast.LENGTH_LONG).show();
    		Bundle bundle = new Bundle();
    		bundle.putStringArray("data", menu);
    		lf.setArguments(bundle);
    		FragmentTransaction fg = getFragmentManager().beginTransaction().
    	    replace(R.id.list_container, lf);
    		fg.addToBackStack(null);
    		fg.commit();
    	}
     
    }
    Est ce que la façon dont j'ai implémenter la transaction dans le onListItemClick est correcte?

    Merci

Discussions similaires

  1. [Débutant] Remplacer modules standards par modules de classe
    Par AlainTech dans le forum VB.NET
    Réponses: 6
    Dernier message: 25/11/2012, 09h25
  2. [WD-2010] Remplacer un mot par le même MAIS dans une autre couleur
    Par goldvin dans le forum Word
    Réponses: 4
    Dernier message: 16/01/2012, 01h30
  3. Configuration de deux services WCF publiés par la même classe
    Par sovitec dans le forum Windows Communication Foundation
    Réponses: 2
    Dernier message: 09/03/2011, 15h37
  4. Remplacer un mot par lui-même ?
    Par tintin72 dans le forum Word
    Réponses: 10
    Dernier message: 14/10/2008, 14h36
  5. Réponses: 6
    Dernier message: 12/11/2007, 11h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo