Uso la barra delle azioni in cui sono presenti schede, ciascuna scheda è un frammento. Tutto è grande, tranne quando faccio rapido passaggio tra le schede. Quando faccio la commutazione rapida, ottengo questo errore:java.lang.IllegalStateException: voce ricorsiva per eseguire Transazioni pendenti con commutazione rapida
java.lang.IllegalStateException: Recursive entry to executePendingTransactions
at android.support.v4.app.FragmentManagerImpl.execPendingActions(Unknown Source)
at android.support.v4.app.FragmentManagerImpl$1.run(Unknown Source)
at android.os.Handler.handleCallback(Handler.java:615)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
Ecco il mio codice per OnTapSelected
if (mFragment == null) {
mFragment = (SherlockFragment) SherlockFragment.instantiate(mActivity, mClass.getName(), mArgs);
ft.add(android.R.id.content, mFragment, mTag);
} else {
ft.attach(mFragment);
}
un modo per risolvere questo problema? O se no, come posso almeno prendere questa eccezione (come dove mettere il try/catch) così la mia app non si arresta?
grazie
dove stai commettendo la frammentazione? – toadzky
Non lo sono. Quando aggiungo un listener di schede, eseguo il commit solo nel costruttore. Ma onTabSelected, non mi impegno dopo aver aggiunto/attaching.should I? – Snake
se non si esegue il commit, nessuna delle modifiche viene effettivamente applicata. non penso che venga commesso automaticamente. ecco i [documenti] (http://developer.android.com/reference/android/app/FragmentTransaction.html#commit()) – toadzky