si gpfragment est null alors il y aura une exception de type nullpointerexception qui sera leve.
Eric
si gpfragment est null alors il y aura une exception de type nullpointerexception qui sera leve.
Eric
j'ai mis en place ton code mais malheureusement je me rend compte que le fragment ne récupére pas lui même la valeur de l'édit text, puisque les valeur qu'il obtient sont nulles
le code :
Merci
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
34
35
36
37 public class GP_Fragment extends Fragment { EditText recupIP,recupNum; String valeurNum,valeurUrl; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView= inflater .inflate(R.layout.gp_fragment, container, false); // déclare l'édit text, que l'on chercher à partir de son id recupNum = (EditText) rootView.findViewById (R.id.etNum); // Récupére le text présent dans l'edit text valeurNum = recupNum.getText().toString(); // déclare l'édit text, que l'on chercher à partir de son id recupIP = (EditText) rootView.findViewById (R.id.etURL); // Récupére le text présent dans l'edit text valeurUrl = recupIP.getText().toString(); return rootView; } public String getText() { return valeurUrl; } public String getTextNum() { return valeurNum; }
Encore une fois, le test peut ne servir à rien. C'est une sécurité en cas de libération de mémoire par le smartphone afin que l'application ne plante pas juste pour un nullpointerexception. Tu peux ne pas le mettre et cela pourrait fonctionner très bien.
Retrouvez moi sur Youtube : https://www.youtube.com/c/DavidSilveraChannel
Ce n'est pas le code que j'ai écrit
Ca devrait être mieux.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 public String getText() { return recupIp.getText().toString(); } public String getTextNum() { return recupNum.getText().toString(); }
Retrouvez moi sur Youtube : https://www.youtube.com/c/DavidSilveraChannel
Bon je te montre mon code du fragment (ça ne fonctionne toujours pas) il s'arrete dès qu'il passe sur l'appelle des methodes get...
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
34
35
36
37
38
39
40
41
42
43
44
45
46 @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { rootView= inflater .inflate(R.layout.gp_fragment, container, false); //Lire le fichier Num valeurNum=LireFichier.ReadSettings(rootView.getContext(),"Num"); //si le fichier est vide alors ecrire le numéro de dans if (valeurNum==null || valeurNum=="") { //Enregistrement Num EcrireFichier.WriteSettings(rootView.getContext(),"","Num",1); } // déclare l'édit text, que l'on chercher à partir de son id recupNum = (EditText) rootView.findViewById (R.id.etNum); //mettre le numéro dans l'éditText recupNum.setText(valeurNum); //Lire le fichier IP valeurUrl=LireFichier.ReadSettings(rootView.getContext(),"IP"); //si le fichier est vide alors ecrire l'url de dans if (valeurNum==null || valeurNum=="") { //Enregistrement ip EcrireFichier.WriteSettings(rootView.getContext(),"192.168.117.15:146","URL",1); } // déclare l'édit text, que l'on chercher à partir de son id recupIP = (EditText) rootView.findViewById (R.id.etURL); // mettre l'url dans l'édit Text recupIP.setText(valeurUrl); return rootView; } public String getText() { return recupIP.getText().toString(); } public String getTextNum() { return recupNum.getText().toString(); }
Est ce que recupIP et recupNum sont à null lorsque tu rentres dans ta fonction? Si oui, c'est que tu n'est pas entré dans le onCreate donc que tu n'as pas affiché ta vu. Dans ce cas, je ne pense pas que tu ais besoin de récupérer ces valeurs. Un simple test sur ces champs pour savoir si ils sont nuls devrait suffire.
Retrouvez moi sur Youtube : https://www.youtube.com/c/DavidSilveraChannel
Plus tu apprends sérieusement, plus tu te rapproches d'un savoir noble. Une chose est certaine, les difficultés ne s'écarteront de ton chemin...
Tu es nouveau dans le développement Android, la page des COURS est là pour te faciliter la vie
Tu peux trouver la réponse à ta question dans la FAQ
Retrouvez mon tutoriel sur la consommation des services web SOAP
Pense à voter positivement en appuyant sur en bas à droite de la réponse qui t'a donné une piste de solution.
Plus tu apprends sérieusement, plus tu te rapproches d'un savoir noble. Une chose est certaine, les difficultés ne s'écarteront de ton chemin...
Tu es nouveau dans le développement Android, la page des COURS est là pour te faciliter la vie
Tu peux trouver la réponse à ta question dans la FAQ
Retrouvez mon tutoriel sur la consommation des services web SOAP
Pense à voter positivement en appuyant sur en bas à droite de la réponse qui t'a donné une piste de solution.
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.text.Editable android.widget.EditText.getText()' on a null object reference
Voila le code d'érreur mais au final j'ai l'impréssion que j'appel les méthodes get mais que le onCreatedView du fragment n'est pas exécuté avant du coup les valeur que les get retournent sont forcément vides..
Pas si vite dans les conclusions...
Mets un peu de côté les appels à tes getters. Essaie juste de lancer ton application sans aucune tentative de récupération des données du fragment. Si l'interface du fragment ne s'affiche pas, ce que onCreateView() de ce dernier ne s'exécute pas. Sinon, (Donc tu vois l'interface s'afficher) ce que onCreateView() s'exécute bien et le problème vient peut être d'ailleurs.
Christian,
Plus tu apprends sérieusement, plus tu te rapproches d'un savoir noble. Une chose est certaine, les difficultés ne s'écarteront de ton chemin...
Tu es nouveau dans le développement Android, la page des COURS est là pour te faciliter la vie
Tu peux trouver la réponse à ta question dans la FAQ
Retrouvez mon tutoriel sur la consommation des services web SOAP
Pense à voter positivement en appuyant sur en bas à droite de la réponse qui t'a donné une piste de solution.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager