2012-06-26 11 views
10

Ho un frammento di lista (importando la libreria di supporto v4, build target è 2.3.3 api 11) e il seguente problema nel mio codice funzionava correttamente quando il target era 3.0 e non l'ho fatto t usare la libreria.Libreria di supporto di ListFragment GetSupportFragmentManager undefined

Fragment frag1 = new ExampleFragment(); 
FragmentTransaction ft = getFragmentManager().beginTransaction(); 
ft.replace(R.id.contentframe, frag1); 
ft.commit(); 

Ora sto ottenendo l'errore di compilazione che

"Type mismatch: cannot convert from ExampleFragment to Fragment" 

e mi dice di cambiare il "Frammento" per ExampleFragment (ad esempio)

ExamplesFragment frag1 = new ExamplesFragment(); 
FragmentTransaction ft = getFragmentManager().beginTransaction(); 
ft.replace(R.id.contentframe, frag1); 
ft.commit(); 

Poi ho un problema che il comando ft.replace ha un errore:

The method replace(int, Fragment) in the type FragmentTransaction is not applicable for the arguments (int, Fragment_PVAnn) 

e mi dice di cambiare l'ExamplesFragment nella prima riga di nuovo appena Frammento e così il cerchio gira e intorno

+0

is ExamplesFragment extending Fragmentclass? si prega di fornire esempi Frammento codice ......... –

+0

Frammento in 3.0 e frammenti in supporto lib non è la stessa. Quindi, se si utilizza il gestore dei frammenti dalla libreria di supporto e il frammento dalla 3.0, o viceversa, si ottiene questo errore. Assicurati di utilizzare i frammenti di supporto lib o 3.0/4.0 in modo coerente. – Christine

risposta

27

si dovrebbe usare

getActivity().getSupportFragmentManager() 

Se che si sta ancora dando problemi, allora makre sicuro che il tuo Activity extends FragmentActivity.

Se questo è ancora ti dà problemi,

  1. Elimina tutte delle vostre importazioni,
  2. Reimportare con Ctrl + Maiusc + O, e
  3. On ogni clash di nome, assicurati di importare da support.v4.*, nonandroid.*.
+0

solo un altro problema ora. Ho provato a lanciarlo in un 2.3.3. emulatore e mi ha dato un errore per il file main.xml l'errore è "errore gonfiando frammento di classe" è alla linea in cui il mio layout di frame del contenuto è quello cui ho fatto riferimento sopra come contentframe – Killerpixler

+0

Dovrai essere più chiaro .. . Non capisco davvero l'errore Potresti voler aggiungere il tuo codice a un nuovo post StackOverflow o qualcosa del genere, otterrà più attenzione in questo modo. Collegami al nuovo post se ce la fai e posso aiutarti.È troppo difficile risolvere problemi come questi nei commenti ... –

1

si deve fare in modo che quando si estende Fragment che si sta estendendo la Fragment che è nello spazio v4 pacchetto. Controlla le tue importazioni per Fragment, FragmentActivity, ecc. E se le vedi importate SENZA .v4 nel nome del pacchetto, allora è sbagliato.

Inoltre, se si imposta la libreria Android per il progetto su 2.3 e non su 4.0.x, si vedrà rapidamente se si utilizzano classi errate, poiché si otterranno errori di compilazione, che possono essere risolti da utilizzando le classi v4 dal jar di supporto Android (che si spera abbiate incluso nel progetto)

+0

a) ho incluso il barattolo di supporto b) Estendo un ListFragment perché ho un elenco visualizzato in questo frammento – Killerpixler

+0

La tua attività estende anche FragmentActivity? – stuckless

+0

@AlexLockwood sì, ma ora ho un nuovo errore – Killerpixler

Problemi correlati