2016-05-24 9 views
0

Wenn ich ein neues Fragment ich diese Methode öffnen möge rufen (die in der Regel funktioniert):richtige Stelle zu setzen Fragment-Tag

openFragment(getActivity(), R.id.fragment_holder_id, MyFragment.newInstance()); 

Problem ich mit zu tun habe ist Fragment-Tag, das ist immer null zurückkehrt, bevor und nach dem Kommit.

public static void openFragment(Activity activity, int fragmentHolderId, Fragment fragment) { 
    FragmentTransaction fragmentTransaction = activity.getFragmentManager().beginTransaction(); 
    System.out.println("Tag Before Commit: " + fragment.getTag()); // null 
    fragmentTransaction.replace(fragmentHolderId, fragment, fragment.getTag()); 
    fragmentTransaction.commit(); 
    System.out.println("Tag After Commit: " + fragment.getTag()); // null 
} 

Wo ist der richtige Ort, um das Fragment-Tag zu setzen?

+0

Sie sollten den Tag festgelegt, wenn Sie ein Fragment erstellen. –

Antwort

2

Verwendung von TAG ist Fragment eindeutig aus Pool von Fragment in Transaktion zu identifizieren. So

während replace() gesetzt TAG

, von dem Sie Fragment später durch folgenden Code zugreifen können

Fragment fragment = getFragmentManager().findFragmentByTag("YOUR_TAG"); 
Verwandte Themen