0
votes

Bundle en fragment est null

J'essaie d'envoyer des données de MainActivity au Sunfragment (le fragment principal) comme suit:

MainAlactivité forte> La maîtrise de la classe publique étend l'appcCompatiactivité { Fustion privéeProviderClipClipIdClipImitLIctionClientClient; Fragment Private Static FragmentManager De FragmentManager; P> XXX PRE>

Sunfragment strong> P>

java.lang.NullPointerException: Attempt to invoke virtual method 'double java.lang.Double.doubleValue()' on a null object reference
        at com.example.phocast.ui.main.SunFragment.onCreateView(SunFragment.java:71)


11 commentaires

Pourquoi cette ligne de code OnsaveInstancestate (nouveau paquet ());


Essayer d'être futurs-Safe, d'enregistrer des données. Mais la suppression de cette ligne n'aide pas beaucoup


Vous avez créé une nouvelle instance de votre Sunfragment , mais d'où ajoutez-vous cette instance au fragmentManager? Est-ce que votre sectionsPageradapter crée une instance totalement différente de Sunfragment ?


Bonjour @ianhanniballake: Mise à jour de la MainActivity, mais pas de changement de résultat.


@ianhanniballake est juste pendant que vous transactez le fragment que vous créez un nouvel objet de fragment ici: - FragmentManager.begintransaction (). Remplacer (R.ID.View_Pager, Nouveau Sunfragment ())). COMMIS ();


@Vipulchauhan: J'ai mis à jour le code. Vérifiez s'il vous plaît


Je pense que le problème est dans cette ligne fragmentmanager.begintransaction (). Remplacer (r.id.view_pager, nouveau Sunfragment ()). COMMIT (); Utilisez Sunfragment au lieu de nouveau SunfraGment ()


Toujours la même erreur


Dans votre activité principale lorsque vous remplacez le fragment


@ianhanniballake: Oui ... J'appelle le téléavertisseur de SectionPageradapter. Le code est ajouté. Veuillez jeter un oeil.


S'il vous plaît ne répétez pas les questions. Simplement modifier cet article avec de nouvelles informations que vous avez eues, tout nouveau code que vous avez essayé, ou une explication de la raison pour laquelle toutes les réponses publiées n'ont pas fonctionné, auraient heurté le sommet de la file d'attente active.


3 Réponses :


1
votes
 mainActivity.java
 ============

  SquardFragment   
          squardFragment=SquardFragment.newInstance(matchId2,page,matchStatus);
       FragmentManager fragmentManager = getSupportFragmentManager();
    FragmentTransaction transaction = fragmentManager.beginTransaction();
    transaction.replace(R.id.container, squardFragment, mTag);
    transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
    if (canAddtoBackStack) transaction.addToBackStack(mTag);
    transaction.commit();


  SquardFragment.java
  =================== 

   public static SquardFragment newInstance(String matchId,
        int page,String matchStatus)    {
    SquardFragment frag = new SquardFragment();
    Bundle argsBundle = new Bundle();
    argsBundle.putString("matchId", matchId);
    argsBundle.putInt("page", page);
    argsBundle.putString("matchStatus", matchStatus);
    frag.setArguments(argsBundle);
    return frag;
  }

  if (getArguments() != null) {
        matchId = getArguments().getString("matchId");
        page = getArguments().getInt("page", 0);
        matchStatus=getArguments().getString("matchStatus");
    }

0 commentaires

0
votes

Le problème est que vous passez une nouvelle instance de votre Sunfragment à fragmentairemanager.begintransaction (). Remplacer () au lieu d'utiliser l'instance que vous avez créée avec les arguments définis. xxx


0 commentaires

0
votes

Le problème est dans cette ligne,

fragmentmanager.begintransaction (). Remplacer (r.id.view_pager, nouveau Sunfragment ()). commit ();

Vous donnez un nouvel objet de Sunfragment à chaque fois

Mettez simplement des lunettes de soleil au lieu du nouveau Sunfragment.


0 commentaires