I've seen all the posts of TabHost + FragmentActivity on Google Groups and on StackOverflow and I'm still getting problems.
And I don't understand anything. I'm following this tutorial for TabHost and FragmentActivity: http://thepseudocoder.wordpress.com/2011/10/04/android-tabs-the-fragment-way/ I have the following thing: in a tab I load a CategoriaFragment.class, where I load a ListView and I set a ListView.OnItemClickListener for it. When I click, I call this code: CategoriaFragment fragmentnuevo = new CategoriaFragment(); FragmentTransaction transaction = getActivity().getSupportFragmentManager().beginTransaction(); Bundle b = new Bundle(); b.putBoolean("flagSottoCategorie", true); b.putSerializable("sottocategorielista", (Serializable)sottocategorielista); fragmentnuevo.setArguments(b); transaction.addToBackStack(null); transaction.add(R.id.realtabcontent, fragmentnuevo, FragmentTAG); // FragmentTAG is the same tag that the current Fragment transaction.commit(); and yes, I call the same type of Fragment because I need the same recurses but with another List (sottocategorielista). This is not the error because I've tried to use another .class and it's the same error. When I press back button, I get again my first ListView but listeners are not available. So I click and nothing happens. I've used add and replace as well. Moreover, when I try to change Tab, if add is typed, I get several fragments in the same layout, if remove is typed, I get only one fragment on onTabChanged, but when I get back to my Fragment, nothing is available. Moreover if I press back button, I get the `java.IllegalStateException` saying > Fragment is already added: CategoriaFragment What should I do? Everything is easier with TabActivity, which is deprecated now and I would like to do everything with Fragments. This is how my onTabChanged works (also available on the resource on the web) public void onTabChanged(String tag) { TabInfo newTab = this.mapTabInfo.get(tag); if (mLastTab != newTab) { FragmentTransaction ft = this.getSupportFragmentManager().beginTransaction(); if (mLastTab != null) { if (mLastTab.fragment != null) { ft.detach(mLastTab.fragment); } } if (newTab != null) { if (newTab.fragment == null) { newTab.fragment = Fragment.instantiate(this, newTab.clss.getName(), newTab.args); ft.add(R.id.realtabcontent, newTab.fragment, newTab.tag); } else { ft.attach(newTab.fragment); } } mLastTab = newTab; ft.commit(); this.getSupportFragmentManager().executePendingTransactions(); } } Thanks in advance. -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en --- You received this message because you are subscribed to the Google Groups "Android Developers" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out.

