2013-06-04 4 views
9

Ich habe ein relatives Layout und ich bin Fragment in diesem relativen Layout hinzufügen. Gefällt Ihnen diesesFinden Fragment nach Tag-Name in Container

 HomeFragment mHomeFragment = new HomeFragment(); 
    FragmentManager fragmentManager = getFragmentManager(); 
    FragmentTransaction fragmentTransaction =fragmentManager.beginTransaction(); 

    if(mHomeFragment!=null&& mHomeFragment.isAdded()){ 

     fragmentTransaction.show(mHomeFragment); 

    }else { 

     fragmentTransaction.add(R.id.order_container,mHomeFragment,"Search"); 


    } 
    fragmentTransaction.commit(); 

Ich habe auch eine Textansicht, wo ich den Namen des Fragments Anzeige muss ich in der relativen Layout hinzugefügt. Wie Suche nach Fall. Wie der Name des Fragments in meinem relativen Layout nehme mit id hinzugefügt bekommen = R.id.order_container

+0

Was meinen Sie mit dem "Namen" des Fragments? –

+0

im obigen Code habe ich Suchstring, als ein Tag in Fragment hinzugefügt. Ich möchte diesen Namen abrufen. – Bora

Antwort

2
Fragment fragment = getFragmentManager().findFragmentById(R.id.order_container); 
String tag = (String) fragment.getTag(); 
2

Sie möchten den Namen ?? Sie können Ihr Fragment mit der ID und tun:

ist es, was Sie wollen? Oder Sie verwenden können:

fragment.getTag(); 

es gibt den Tag-Namen des Fragments, falls angegeben.

3

Wenn Sie das Tag eines Fragments erhalten möchten, können Sie die getTag() - Methode verwenden. Dies ist wahrscheinlich nicht der beste Weg, um das zu erreichen, was Sie suchen.

http://developer.android.com/reference/android/app/Fragment.html#getTag()

Wenn Sie mehrere Fragmente haben, und Sie werden sie um ändern, sollten Sie einen Adapter verwenden.

+0

was ist, wenn es kein Fragment im Container gibt, wie man diesen Schritt überprüft – Bora

+0

Sie können findFragmentById verwenden, um dies zu erreichen, siehe Antwort von @ JoaoBiriba, es gibt null zurück, wenn es kein Fragment gibt. – Philio

+0

Ich füge dynamisch Framgents hinzu was ID sollte ich geben? – Bora

29

Sie ein Fragment von Tag durch

Fragment fragment = getFragmentManager().findFragmentByTag("yourstringtag"); 

abrufen können, dann können Sie überprüfen, ob Ihr Fragment instace von HomeFragment

if (fragment instanceof HomeFragment) { 
} 
+1

mit Kleinbuchstaben 'o' :) - "instanceof" – keybee

+0

@keybee danke – Blackbelt

+0

+1. Aber ich möchte wissen, wie wir es in verschachtelten Fragmenten mit TabLayout verwenden können. Ich weiß, es ist eine dumme Frage, aber ich muss es wissen. –

3

Sie findFragmentById in FragmentManager

können
getFragmentManager().findFragmentById(R.id.order_container) 
0
getSupportFragmentManager().findFragmentById(R.id.container).getClass().getName(); 
ist
+2

Versuchen Sie, weitere Details in Ihrer Antwort anzugeben –