2017-03-09 1 views
1

G'Day, Das Problem ist einfach, in der onResume() Methode der AppCompatActivity im Ersetzen eines Fragments und möchte einige Werte seiner Kinder direkt danach ändern.Element des Fragments kann nicht direkt nach dem Platzieren des Fragments gefunden werden

Beispiel:

public void onResume(){ 
    Fragment FR = new Fragment(); 
    FragmentTransaction FT = getSupportFragmentManager().beginTransaction(); 
    FT.replace(containerID, FR); //The Container is a FrameLayout 
    FT.commit(); 

    findViewById(R.id.someTextView).setId(SomeID); //This throws a NullPointerException 

} 

Um genau zu sein: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.View.setId(int)' on a null object reference

Jede Idee, wie meine Ansicht zu finden?

Antwort

0

Sie sollten commitNow anstelle von commit verwenden. Das Fragment ist nach dem Commit-Befehl nicht an der richtigen Stelle angehängt. commitNow wird das Commit synchron ausführen und Sie sollten in der Lage sein, die Ansicht danach zu finden.

1

Da getView() nur nach onCreateView() funktioniert, können Sie es nicht wie oben verwenden.

Verwandte Themen