2016-09-06 2 views
-2

ich ein benutzerdefiniertes Fragment habe, dass ich geschaffen habe, die in meine Haupttätigkeit XML-Layout wie unten hinzugefügt:Android Aufruf öffentliche Methode auf Fragment hinzugefügt in XML

<?xml version="1.0" encoding="utf-8"?> 

<TextView 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:gravity="center" 
    android:text="Hello world" 
    android:textStyle="bold" /> 

<fragment android:name="net.project.package.fragments.CustomFragment" 
    android:id="@+id/custom_fragment" 
    android:layout_weight="1" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" /> 

Das benutzerdefinierte Fragment enthält eine öffentliche Methode wie folgt:

public void myPublicMethod() { 

    //do some stuff 

} 

aber in meiner Tätigkeit bin ich nicht in der Lage diese öffentliche Methode zuzugreifen, wenn ich die Ansicht nennen:

Fragment myCustomFragment = getSupportFragmentManager().findFragmentById(R.id.custom_fragment); 

myCustomFragment.? 

Was ist die Möglichkeit, diese Methode aufrufen, wenn ein Fragment in XML deklariert wird?

+2

Sie müssen in CustomFragment konvertieren 'CustomFragment myCustomFragment = (CustomFragment) getSupportFragmentManager(). FindFragmentById (R.id.custom_fragment); myCustomFragment.myPublicMethod(); ' – tebitoq

Antwort

0

Sie müssen das Fragment in Ihr Fragment schreiben, das die Methode enthält, die Sie vom Fragmentmanager abrufen. Außerdem sollten Sie überprüfen, ob das Fragment null ist oder nicht, bevor Sie tatsächlich eine Methode im Fragment aufrufen.

CustomFragment myCustomFragment = (CustomFragment) getSupportFragmentManager(). FindFragmentById (R.id.custom_fra gment);

Verwandte Themen