package com.photoshare.tabHost.tab; import java.util.ArrayList; import android.app.FragmentTransaction; import android.os.Bundle; import com.photoshare.command.Command; import com.photoshare.fragments.BaseFragment; import com.photoshare.fragments.stacktrace.TraceElement; import com.photoshare.fragments.stacktrace.TracePhase; import com.photoshare.service.news.NewsBean; import com.photoshare.service.news.view.NewsFragment; import com.photoshare.tabHost.BaseActivity; import com.photoshare.tabHost.R; public class TabNewsActivity extends BaseActivity { private ArrayList<NewsBean> news; private NewsFragment nf; private boolean onPause; @Override public void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub // requestWindowFeature(Window.FEATURE_NO_TITLE); super.onCreate(savedInstanceState); setContentView(R.layout.tab_news_layout_holder); initFragment(); } @Override protected void onPause() { // TODO Auto-generated method stub super.onPause(); onPause = true; } private void initFragment() { nf = (NewsFragment) getFragmentManager().findFragmentById( R.id.TabNewsLayoutHolderId); nf = NewsFragment.newInstance(R.id.TabNewsLayoutHolderId); nf.setNews(news); nf.setCanonicalTag(getNews()); Bundle bundle = new Bundle(); bundle.putParcelableArrayList(NewsBean.KEY_NEWS, news); nf.setArguments(bundle); TraceElement element = new TraceElement(getNews(), bundle); stack.setCurrentPhase(TracePhase.NEWS); stack.forward(element); FragmentTransaction ft = getFragmentManager().beginTransaction(); ft.replace(R.id.TabNewsLayoutHolderId, nf); ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE); ft.commit(); } @Override protected void onRestoreInstanceState(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onRestoreInstanceState(savedInstanceState); if (savedInstanceState != null) { if (savedInstanceState.containsKey(NewsBean.KEY_NEWS)) { news = savedInstanceState .getParcelableArrayList(NewsBean.KEY_NEWS); } } } @Override protected void onResume() { // TODO Auto-generated method stub super.onResume(); if (onPause) { stack.setCurrentPhase(TracePhase.NEWS); Bundle args = new Bundle(); args.putParcelableArrayList(NewsBean.KEY_NEWS, news); Command.forwardTab((BaseFragment) getFragmentManager() .findFragmentById(R.id.TabNewsLayoutHolderId), getNews(), args); } } @Override protected void onSaveInstanceState(Bundle outState) { // TODO Auto-generated method stub super.onSaveInstanceState(outState); if (outState != null) { outState.putParcelableArrayList(NewsBean.KEY_NEWS, news); } } private String getNews() { return getString(R.string.fnewsFragment); } }