package com.tv.view; import android.annotation.TargetApi; import android.app.ActionBar; import android.app.ActionBar.Tab; import android.app.Activity; import android.app.Fragment; import android.app.FragmentTransaction; import android.content.Intent; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.Window; import android.widget.Toast; import com.tv.btl.R; import com.tv.listener.FragListener; @TargetApi(14) public class HomeView extends Activity { Fragment globalFragment; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_ACTION_BAR); setContentView(R.layout.layout_home); final ActionBar actionBar = getActionBar(); actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); actionBar.setLogo(R.drawable.ic_newpost); actionBar.setHomeButtonEnabled(true); Tab tab_mypage = actionBar.newTab(); tab_mypage.setText("Trang chủ"); tab_mypage.setTabListener(new TabListener<Frag_mypage>(this, "Tag mypage", Frag_mypage.class)); actionBar.addTab(tab_mypage); Tab tab_friends = actionBar.newTab(); tab_friends.setText("Theo dõi"); tab_friends.setTabListener(new TabListener<Frag_friends>(this, "Tag friend", Frag_friends.class)); actionBar.addTab(tab_friends); Tab tab_feed = actionBar.newTab(); tab_feed.setText("Hệ thống"); tab_feed.setTabListener(new TabListener<Frag_feed>(this, "Tag feed", Frag_feed.class)); actionBar.addTab(tab_feed); if (savedInstanceState != null) { int savedIndex = savedInstanceState.getInt("SAVED_INDEX"); getActionBar().setSelectedNavigationItem(savedIndex); } } protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); outState.putInt("SAVED_INDEX", getActionBar() .getSelectedNavigationIndex()); } public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.home_option, menu); return true; } public boolean onOptionsItemSelected(MenuItem item){ int c = item.getItemId(); switch (c){ case android.R.id.home: // Toast.makeText(this, "test thoi", Toast.LENGTH_SHORT).show(); Intent y = new Intent(this, NewPost.class); startActivity(y); return true; case R.id.home_option_account : Intent i= new Intent(this, Account.class); startActivity(i); return true; case R.id.home_option_refresh: if(globalFragment instanceof Frag_feed){ ((Frag_feed) globalFragment).init(); } else if(globalFragment instanceof Frag_mypage) { ((Frag_mypage) globalFragment).init(); } else if(globalFragment instanceof Frag_friends){ ((Frag_friends) globalFragment).init(); } return true; } return (super.onOptionsItemSelected(item)); } public class TabListener<T extends Fragment> implements ActionBar.TabListener { Fragment myFragment = null; private final Activity myActivity; private final String myTag; private final Class<T> myClass; public TabListener(Activity activity, String tag, Class<T> cls) { myActivity = activity; myTag = tag; myClass = cls; } public void onTabSelected(Tab tab, FragmentTransaction ft) { myFragment = myActivity.getFragmentManager() .findFragmentByTag(myTag); // Check if the fragment is already initialized if (myFragment == null) { // If not, instantiate and add it to the activity myFragment = Fragment .instantiate(myActivity, myClass.getName()); ft.add(android.R.id.content, myFragment, myTag); } else { // If it exists, simply attach it in order to show it ft.attach(myFragment); } globalFragment=myFragment; } public void onTabUnselected(Tab tab, FragmentTransaction ft) { Fragment myFragment = myActivity.getFragmentManager() .findFragmentByTag(myTag); if (myFragment != null) { // Detach the fragment, because another one is being attached ft.detach(myFragment); } } public void onTabReselected(Tab tab, FragmentTransaction ft) { } } }