ActionBar详解(五)--->利用ActionBar结合Fragment实现Tab导航
2013-10-09 22:11
344 查看
MainActivity如下:
TestFragment如下:
main.xml如下:
package cc.testsimpleactionbar4; import android.os.Bundle; import android.app.ActionBar; import android.app.Activity; import android.app.ActionBar.Tab; import android.app.ActionBar.TabListener; import android.app.FragmentTransaction; /** * Demo描述: * 利用ActionBar结合Fragment实现Tab导航. * 当选中不同的Tab时利用Fragment显示不同的内容 * * 参考资料: * 1 Android疯狂讲义(第二版) * Thank you very much * */ public class MainActivity extends Activity { private ActionBar mActionBar; private final static String SELECTED_TAB_INDEX="selected_tab"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); initActionBar(); } private void initActionBar(){ mActionBar=getActionBar(); //设置导航方式为Tab mActionBar.setNavigationMode(ActionBar.N***IGATION_MODE_TABS); Tab tab1=mActionBar.newTab(); tab1.setText("第一页"); tab1.setTabListener(new TabListenerImpl()); mActionBar.addTab(tab1); Tab tab2=mActionBar.newTab(); tab2.setText("第二页"); tab2.setTabListener(new TabListenerImpl()); mActionBar.addTab(tab2); Tab tab3=mActionBar.newTab(); tab3.setText("第三页"); tab3.setTabListener(new TabListenerImpl()); mActionBar.addTab(tab3); } private class TabListenerImpl implements TabListener{ @Override public void onTabReselected(Tab arg0, FragmentTransaction arg1) { } @Override public void onTabSelected(Tab tab, FragmentTransaction transaction) { System.out.println(" onTabSelected "); TestFragment testFragment=new TestFragment(); Bundle bundle=new Bundle(); bundle.putString(TestFragment.KEY, "这是第"+(tab.getPosition()+1)+"个Tab"); testFragment.setArguments(bundle); FragmentTransaction fragmentTransaction=getFragmentManager().beginTransaction(); fragmentTransaction.replace(R.id.relativeLayoutContainer, testFragment); fragmentTransaction.commit(); } @Override public void onTabUnselected(Tab arg0, FragmentTransaction arg1) { } } //以下处理横竖屏的切换 //将当前选中的Tab页的索引保存到Bundle中 @Override protected void onSaveInstanceState(Bundle bundle) { super.onSaveInstanceState(bundle); bundle.putInt(SELECTED_TAB_INDEX, mActionBar.getSelectedNavigationIndex()); } //获取已经保存的被选中Tab页的索引,且设置ActionBar. //setSelectedNavigationItem()方法会调用onTabSelected() @Override protected void onRestoreInstanceState(Bundle bundle) { super.onRestoreInstanceState(bundle); mActionBar.setSelectedNavigationItem(bundle.getInt(SELECTED_TAB_INDEX)); } }
TestFragment如下:
package cc.testsimpleactionbar4; import android.app.Fragment; import android.os.Bundle; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; public class TestFragment extends Fragment { public static final String KEY="key"; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) { TextView textView=new TextView(getActivity()); textView.setGravity(Gravity.CENTER); Bundle bundle=this.getArguments(); String content=bundle.getString(KEY); textView.setText(content); textView.setTextSize(30); return textView; } }
main.xml如下:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/relativeLayoutContainer" android:layout_width="match_parent" android:layout_height="match_parent" > </RelativeLayout>
相关文章推荐
- ActionBar详解(六)--->利用ActionBar结合Fragment实现下拉式导航
- ActionBar详解(五)--->利用ActionBar结合Fragment实现Tab导航
- ActionBar详解(六)--->利用ActionBar结合Fragment实现下拉式导航
- 利用ViewPager+Fragment+actionbar实现可左右滑动的Action Tab
- ActionBar结合Fragment实现Tab导航、下拉式导航
- ActionBar结合Fragment实现Tab导航
- ActionBar和Fragment结合ViewPager实现TabActivity
- Android Fragment 学习<2> 滑动TAb导航(ActionBar)
- 利用ViewPager+Fragment+actionbar实现可左右滑动的Action Tab
- ActionBar结合Fragment实现Tab导航
- ActionBar和Fragment结合ViewPager实现TabActivity
- ActionBar结合Fragment实现下拉式导航
- 利用ViewPager+Fragment+actionbar实现可左右滑动的Action Tab
- 黑马北京新闻项目连载(4)--->ViewPagerIndicator结合FragmentPagerAdapter(开源库的Git上的demo)
- 利用<div>层 和<img>标签,实现一个图片两个动画效果
- 用ActionBar+Fragment实现Tab分类列表
- ViewPager和Fragment结合,利用(HorizontalScrollView)实现指示器与ViewPager同时滑动的动态效果
- 利用OpenOffice.org和Swftools进行实现—doc-->pdf-->swf--格式的转换
- 【English】Android -> Training -> Adding the Action Bar -> Styling the Action Bar
- <Machine Learning in Action >之二 朴素贝叶斯 C#实现文章分类