J'essaie d'envoyer des données de MainActivity au Sunfragment (le fragment principal) comme suit:
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)
3 Réponses :
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"); }
Le problème est que vous passez une nouvelle instance de votre Sunfragment code> à
fragmentairemanager.begintransaction (). Remplacer () code> au lieu d'utiliser l'instance que vous avez créée avec les arguments définis.
Le problème est dans cette ligne, P>
fragmentmanager.begintransaction (). Remplacer (r.id.view_pager, nouveau Sunfragment ()). commit (); p>
Vous donnez un nouvel objet de Sunfragment à chaque fois P>
Mettez simplement des lunettes de soleil au lieu du nouveau Sunfragment. P>
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 Code>, mais d'où ajoutez-vous cette instance au fragmentManager? Est-ce que votre
sectionsPageradapter code> crée une instance totalement différente de
Sunfragment code>?
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 (); CODE> 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.