Je suis très nouveau à l'interface utilisateur Android, je cherchais un endroit où je peux apprendre la structure de base de l'interface utilisateur et comment la communication et les dispositions devraient fonctionner. Mais peu importe. Mon problème vient de moi en essayant de changer la valeur d'un TextView dans un fragment. Je continue d'obtenir une exception nullPointer lorsque j'essaie de changer la valeur. J'utilise un gestionnaire de fragment pour faire référence au fragment.Communiquer avec le fragment NullPointerException
Voici le code fragment:
package com.archronix.infotainment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
public class Fragment1 extends android.support.v4.app.Fragment {
public TextView status;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_fragment1, container,
false);
return v;
}
public static Fragment1 newInstance() {
Fragment1 f = new Fragment1();
return f;
}
public void postText(String str){
status.setText(status.getText()+"\n"+str);
}
}
Et voilà comment je déclare mon gestionnaire de fragment:
fragment1 = (Fragment1)
getSupportFragmentManager().findFragmentById(R.id.fragment1);
Et comment je l'utilise:
fragment1.postText("testtext");
Mon logcat:
05-15 10 : 56: 42.406 4109-4109/com.archronix.infotainment E/AndroidRuntime: FATAL EXCEPTION: principal Processus: com.archronix.infotainment, PID: 4109 java.lang.RuntimeException: Impossible de démarrer l'activité ComponentInfo {com.archronix. infotainment/com.archronix.infotainment.MainActivity}: java.lang.NullPointerException: Tentative d'invocation de la méthode virtuelle 'void com.archronix.infotainment.Fragment1.postText (java.lang.String)' sur une référence d'objet nul at android. app.ActivityThread.performLaunchActivity (ActivityThread.java:2298) at android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2360) à l'adresse android.app.ActivityThread.access $ 800 (ActivityThread.java:144) at android.app .ActivityThread $ H.handleMes sage (ActivityThread.java:1278) à android.os.Handler.dispatchMessage (Handler.java:102) à android.os.Looper.loop (Looper.java:135) at android.app.ActivityThread.main (ActivityThread.java:5221) à java.lang.reflect.Method.invoke (Méthode native) à java.lang.reflect.Method.invoke (Method.java:372) à com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:899) at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:694) Causé par: java.lang.NullPointerException: Tentative d'invocation de la méthode virtuelle 'void com. archronix.infotainment.Fragment1.postText (java.lang.String) 'sur un Référence de l'objet de ull at com.archronix.infotainment.MainActivity.onCreate (MainActivity.java:102) at android.app.Activity.performCreate (Activity.java:5933) at android.app.Instrumentation.callActivityOnCreate (Instrumentation.java : 1105) à android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2251) à android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2360) à android.app.ActivityThread.access $ 800 (ActivityThread.java: 144) à android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1278) à android.os.Handler.dispatchMessage (Handler.java:102) à android.os.Looper.loop (Looper.java:135) à android.app.ActivityThread.main (ActivityThread.java:5221) à java.lang.reflect.Method.invoke (méthode native) à java .lang.reflect.Method.invoke (Method.java:372) sur com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:899) à com.android.internal.os.ZygoteInit.main (ZygoteInit.java:694)
Toutes mes excuses pour mon newbieness. J'ai lu 20 messages de dépassement de pile concernant des sujets similaires, mais tous semblent être soit périmés ou pas cohérent. Quelle est la meilleure façon d'accomplir ma tâche? Je vous remercie.
J'ai lu le message. Et je comprends comment fonctionne NullPointerExceptions, mon problème est que je ne peux pas sembler identifier où et avec quelle variable le problème se produit dans mon code. –
Vous pouvez utiliser le débogueur pour cela – Daniele
Comme vous pouvez le voir, le débogueur me dit qu'il est sur l'appel à la méthode de. Je ne sais pas pourquoi cela appelle une exception NullPointerException. Je souhaite avoir bien compris les méthodes Android pour pouvoir tracer mon problème mais malheureusement je ne le fais pas. Je suis désolé s'il y a une solution disponible, je ne sais pas quoi d'autre à rechercher. –