Ich bin sehr neu in Android UI, ich habe nach einem Ort gesucht Ich kann die grundlegende Struktur der Benutzeroberfläche lernen und wie Kommunikation und Layouts funktionieren sollte. Aber egal. Mein Problem kommt von mir, wenn ich versuche, den Wert einer TextView in einem Fragment zu ändern. Ich erhalte immer eine nullPointerException, wenn ich versuche, den Wert zu ändern. Ich verwende einen Fragmentmanager, um auf das Fragment zu verweisen.Kommunikation mit Fragment NullPointerException
Hier ist das Fragment Code:
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);
}
}
Und das ist, wie ich meine Fragment Manager erklären:
fragment1 = (Fragment1)
getSupportFragmentManager().findFragmentById(R.id.fragment1);
Und, wie ich es verwenden:
fragment1.postText("testtext");
Mein logcat:
05-15 10 : 56: 42.406 4109-4109/com.archronix.infotainment E/AndroidRuntime: FATALE AUSNAHME: Haupt Prozess: com.archronix.infotainment, PID: 4109 java.lang.RuntimeException: kann Aktivität nicht starten ComponentInfo {com.archronix. infotainment/com.archronix.infotainment.MainActivity}: java.lang.NullPointerException: Versuch, die virtuelle Methode 'void com.archronix.infotainment.Fragment1.postText (java.lang.String)' für eine Nullobjekt-Referenz bei android aufzurufen. app.ActivityThread.performLaunchActivity (ActivityThread.java:2298) bei android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2360) bei android.app.ActivityThread.access $ 800 (ActivityThread.java:144) bei android.app .ActivityThread $ H.HandleMes Salbei (ActivityThread.java:1278) bei android.os.Handler.dispatchMessage (Handler.java:102) bei android.os.Looper.loop (Looper.java:135) bei android.app.ActivityThread.main (ActivityThread.java:5221) bei java.lang.reflect.Method.invoke (native Methode) bei java.lang.reflect.Method.invoke (Method.java:372) bei com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:899) bei com.android.internal.os.ZygoteInit.main (ZygoteInit.java:694) verursacht durch: java.lang.NullPointerException: Versuch, virtuelle Methode 'void com aufzurufen. arronix.infotainment.Fragment1.postText (java.lang.String) 'an einem ULL Objektreferenz bei com.archronix.infotainment.MainActivity.onCreate (MainActivity.java:102) bei android.app.Activity.performCreate (Activity.java:5933) bei android.app.Instrumentation.callActivityOnCreate (Instrumentation.java : 1105) bei android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2251) bei android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2360) bei android.app.ActivityThread.access $ 800 (ActivityThread.java: 144) bei android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1278) bei android.os.Handler.dispatchMessage (Handler.java:102) bei android.os.Looper.loop (Looper.java:135) bei android.app.ActivityThread.main (ActivityThread.java:5221) bei java.lang.reflect.Method.invoke (native Methode) bei java .lang.reflect.Method.invoke (Methode.java:372) bei com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:899) bei com.android.internal.os.ZygoteInit.main (ZygoteInit.java:694)
Entschuldigt meine newbieness. Ich habe 20 Stack-Überlauf-Beiträge zu ähnlichen Themen gelesen, aber alle scheinen entweder veraltet oder nicht konsistent zu sein. Was ist der beste Weg, um meine Aufgabe zu erfüllen? Vielen Dank.
Ich habe den Beitrag gelesen. Und ich verstehe, wie NullPointerExceptions arbeiten, ist mein Problem, ich kann nicht zu identifizieren, wo und mit welcher Variable das Problem in meinem Code auftritt. –
Sie können den Debugger dafür verwenden – Daniele
Wie Sie sehen können, teilt mir der Debugger mit, dass es sich um den Aufruf der Methode handelt. Ich weiß nicht, warum das eine NullPointerException aufruft. Ich wünschte, ich würde Androidechniken gut genug verstehen, um mein Problem aufspüren zu können, aber leider nicht. Es tut mir leid, wenn eine Lösung verfügbar ist, ich bin mir nicht sicher, nach was ich sonst suchen soll. –