2014-12-02 10 views
6

Nel mio xml ho il seguente codice:non può lanciare View per <fragment>

<fragment android:name="somepackage.Fragments.ToolbarFragment" 
    android:id="@+id/toolbar_fragment" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"/> 

e nel mio codice ho:

private ToolbarFragment toolbarFragment; 
toolbarFragment = (ToolbarFragment) findViewById(R.id.toolbar_fragment); 

ricevo l'errore: "non può lanciare android.view. View to somepackage.Fragments.ToolbarFragment "

perché Android vede il frammento come un tipo di vista generico anziché come classe di frammenti che ho specificato?

risposta

12

Si sta chiamando findViewById(). Questo è per trovare un View, come un widget.

Se si vuole trovare un frammento , chiamare findFragmentById() sul FragmentManager, che si ottiene chiamando getFragmentManager() (frammenti nativi) o getSupportFragmentManager() (frammenti backport dal support-v4 o support-v13) sulla vostra attività.

+0

Che ha fatto :) molte molte grazie !! – Jon

3

provare in questo modo

somepackage.Fragments.ToolbarFragment toolbarFragment = (somepackage.Fragments.ToolbarFragment) findFragmentById(R.id.toolbar_fragment); 
+0

Grazie. Ho provato, ma ancora lo stesso errore – Jon

Problemi correlati