Basically you cant use fragment activities has tabs am i correct???only fragments as tabs....but now how do i deal with layout orientation?if there's no activity for each fragment, the layout stays the same even if i have a different layout for landscape....
On Wednesday, May 23, 2012 6:46:47 AM UTC+1, Dianne Hackborn wrote: > > (1) If you are using fragments, don't use ActivityGroup or > LocalActivityActivityManager. "This class is deprecated. Use the new > Fragment and FragmentManager APIs instead; these are also available on > older platforms through the Android compatibility package." > http://developer.android.com/reference/android/app/ActivityGroup.html > > (2) For the love of all, ghod please do not instantiate a > LocalActivityManager directly: "This class is not normally used directly, > but rather created for you as part of the ActivityGroup implementation." > http://developer.android.com/reference/android/app/LocalActivityManager.html > > > (3) Use the various sample code that shows how to use tabs with fragments, > such as > http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/app/FragmentTabs.html > or > http://developer.android.com/resources/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentTabs.html > or > http://developer.android.com/resources/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentTabsPager.html > > On Tue, May 22, 2012 at 10:25 AM, Bluemercury <[email protected]>wrote: > >> Hi! so im currently having a problem regarding the onSaveInstaceState >> method in the Fragment class. This class is called from a FragmentActivity >> that acts as a Tab created in another FragmentActivity, but i cant seem to >> make the call to onSaveInstanceState to happen, here's some code: >> >> *mainmenu *class that generates the tabs: >> >> public class MainMenu extends FragmentActivity{ >>> >>> >>>> private TabHost tabs=null; >>> >>> >>>> public String getWindowTitle() { >>> >>> return "Home"; >>> >>> } >>> >>> >>>> //@Override >>> >>> public int getLayoutId() { >>> >>> return R.layout.main_menu; >>> >>> } >>> >>> >>>> //@Override >>> >>> public int getThemeId() { >>> >>> return R.style.CustomTheme; >>> >>> } >>> >>> >>>> @Override >>> >>> public void onSaveInstanceState(Bundle bundle) { >>> >>> >>>> super.onSaveInstanceState(bundle); >>> >>> bundle.putInt("TAB",tabs.getCurrentTab()); >>> >>> } >>> >>> >>>> @Override >>> >>> public void onRestoreInstanceState(Bundle bundle) { >>> >>> >>>> super.onRestoreInstanceState(bundle); >>> >>> tabs.setCurrentTab(bundle.getInt("TAB")); >>> >>> >>>> >>>> } >>> >>> >>>> @Override >>> >>> public void onCreate(Bundle savedInstanceState) { >>> >>> >>>> setTheme(getThemeId()); >>> >>> super.onCreate(savedInstanceState); >>> >>> setContentView(getLayoutId()); >>> >>> LocalActivityManager mlam = new LocalActivityManager(this, false); >>> >>> tabs=(TabHost)findViewById(android.R.id.tabhost); >>> >>> mlam.dispatchCreate(savedInstanceState); >>> >>> tabs.setup(mlam); >>> >>> >>>> TabHost.TabSpec spec; >>> >>> Intent intent; >>> >>> >>>> // Create an Intent to launch an Activity for the tab (to be reused) >>> >>> intent = new Intent().setClass(this, >>>> MyProcessListFragmentActivity.class); >>> >>> spec = >>>> tabs.newTabSpec("Home").setIndicator((buildTabIndicator("Home"))) >>> >>> .setContent(intent); >>> >>> tabs.addTab(spec); >>> >>> >>>> // Create an Intent to launch an Activity for the tab (to be reused) >>> >>> intent = new Intent().setClass(this, SearchProcess.class); >>> >>> spec = >>>> tabs.newTabSpec("Search").setIndicator((buildTabIndicator("Search"))) >>> >>> .setContent(intent); >>> >>> >>>> // Create an Intent to launch an Activity for the tab (to be reused) >>> >>> intent = new Intent().setClass(this, MyProcessList.class); >>> >>> tabs.addTab(spec); >>> >>> spec = >>>> tabs.newTabSpec("Options").setIndicator((buildTabIndicator("Options"))) >>> >>> .setContent(intent); >>> >>> >>>> tabs.addTab(spec); >>> >>> >>>> tabs.setCurrentTab(0); >>> >>> >>>> >>>> } >>> >>> >> Here's the *MyprocessListGragmentActivity*: >> >> public class MyProcessListFragmentActivity extends FragmentActivity >>> implements MyProcessFragmentList.onProcessSelectedListener{ >>> >>> @Override >>> protected void onCreate(Bundle arg0) { >>> super.onCreate(arg0); >>> >>> setContentView(R.layout.myprocesslist_fragment); >>> } >>> } >>> >> >> and the Fragment class *MyProcessFragmentList *called from the layout : >> >> public class MyProcessFragmentList extends IpdmsCoreFragment { >>> >>> >>>> onProcessSelectedListener mListener; >>> >>> >>>> private PullToRefreshListView mPullRefreshListView; >>> >>> >>>> private LinkedList<GenericMenuItemListDTO> iTems; >>> >>> private List<MyProcessDTO> tempList; >>> >>> private GenericMenuAdapter adapter; >>> >>> >>>> private int processListPage=1; >>> >>> >>>> >>>> // Container Activity must implement this interface >>> >>> public interface onProcessSelectedListener{ >>> >>> >>>> public void onArticleSelected(MyProcessDTO process); >>> >>> } >>> >>> >>>> >>>> @Override >>> >>> public void onAttach(Activity activity) { >>> >>> super.onAttach(activity); >>> >>> >>>> try{ >>> >>> mListener=(onProcessSelectedListener) activity; >>> >>> }catch(ClassCastException e){ >>> >>> throw new ClassCastException(activity.toString() + " must implement >>>> onProcessSelectedListener"); >>> >>> } >>> >>> } >>> >>> >>>> >>>> >>>> @Override >>> >>> public void onSaveInstanceState(Bundle outState) { >>> >>> super.onSaveInstanceState(outState); >>> >>> >>>> outState.putSerializable("LISTPROCESS", adapter.getAllItems()); >>> >>> } >>> >>> >> The onSaveInstanceState never gets called on rotation....but if i run the >> Fragment Activity directly it works and it gets called.... >> >> Regards, >> >> >> >> >> >> -- >> 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 > > > > > -- > Dianne Hackborn > Android framework engineer > [email protected] > > Note: please don't send private questions to me, as I don't have time to > provide private support, and so won't reply to such e-mails. All such > questions should be posted on public forums, where I and others can see and > answer them. > > -- 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

