Je veux pouvoir cliquer sur un bouton de mon fragment de paramètres, ce qui modifiera une image sur un autre fragment appelé fragment à domicile. Mon application continue de se bloquer une fois que je clique sur le bouton et je ne suis pas sûr de savoir pourquoi.
Paramètres Fragment: P>
public class AvatarFragment extends Fragment {
public ImageView IV;
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState)
{
View rootView = inflater.inflate(R.layout.fragment_avatar, container, false);
// init image view
IV = (ImageView) rootView.findViewById( R.id.Torso );
// getting extras
//Bundle bundle = getActivity().getIntent().getExtras();
// Bundle bundle=getArguments();
Bundle b=getArguments();
if(b!= null)
{
int resid = b.getInt("resID");
IV.setBackgroundResource(resid);
}
return rootView;
}
}
3 Réponses :
Il est difficile de dire sans voir l'exception, mais cela pourrait être parce que les mappages de paquet sont sensibles à la casse. p>
Votre Paramètres de paramètres code> utilise "RESID", mais votre Homefragment code> s'attend à "résider". Si aucun mappage n'est trouvé dans le paquet, vous recevrez la valeur par défaut de 0 pour RIDID code>. Il est possible que vous écrasiez lorsque vous appelez iv.setimageresource (0); code>. P>
Votre implémentation d'image dans le code est fausse, vous devez introduire votre image de vue comme ceci:
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState)
{
View rootView = inflater.inflate(R.layout.fragment_avatar, container, false);
// init image view
IV = (ImageView) rootView.findViewById( R.id.Torso );
// getting extras
Bundle bundle = getActivity().getIntent().getExtras();
if(bundle!= null)
{
int resid = bundle.getInt("resId");
IV.setImageResource(resid);
}
return rootView;
}
Bonjour merci pour votre réponse, j'ai toujours la même exception dans mon logcat;)
Ne passez pas la valeur du fragment vers fragment directement. P>
Vous devez utiliser setarguments code> à partir de ParamètresFragment et GetArguments Code> dans Homefragment P>
Donc, vous dites quelque chose comme: Bundle B = New Bundle (); B.Pompanie ("Resid", R.Drawable.Torso2green); ParamètresFragment.Cela.Setarguments (B);
@FUSIOZIII OUI.IN ParamètresFRAGEMENT CODE>, lorsque le bouton OnCliquez, rappelez-vous à l'activité et transmettez votre valeur et utilisez SETARGUMuments CODE> dans l'activité où vous trans sur Avatarfragment code> Enfin, utilisez getarguments code> dans avatarfragment code> pour obtenir la valeur que vous passez à partir de ParamètresFRAGEMENT code>.
Merci :) J'ai mis à jour ma solution mais je ne pense pas que le fragment d'avatar soit même appelé après le bouton clic. Des idées ?
Où est la sortie LOGCAT?
Juste l'a ajouté :)