首页 > 代码库 > Fragment + TabHost + RadioGroup
Fragment + TabHost + RadioGroup
1. 使用FragMent是因为 4.0.3之后 ,摒弃了TabActivity这种用法,
Demo 效果图:
先上布局XML R.layout.activity_main
[html] view plaincopy
- <?xml version="1.0" encoding="utf-8"?>
- <TabHost
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@android:id/tabhost"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent">
- <LinearLayout
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent">
- <TabWidget
- android:id="@android:id/tabs"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:layout_weight="0.0"
- android:visibility="gone"/>
- <include android:id="@+id/header"
- layout="@layout/my_header"
- android:layout_height="wrap_content"
- android:layout_width="fill_parent"/>
- <FrameLayout
- android:id="@android:id/tabcontent"
- android:layout_width="fill_parent"
- android:layout_height="0.0dip"
- android:layout_weight="1.0">
- <fragment
- android:name="com.example.coolsmile.fragment.HomeFragment"
- android:id="@+id/HomeFragment"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- />
- <fragment
- android:name="com.example.coolsmile.fragment.fragment_tab2"
- android:id="@+id/fragment_tab2"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- />
- <fragment
- android:id="@+id/fragment_tab3"
- android:name="com.example.coolsmile.fragment.fragment_tab3"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- />
- <fragment
- android:id="@+id/fragment_tab4"
- android:name="com.example.coolsmile.fragment.fragment_tab4"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- />
- <fragment
- android:id="@+id/fragment_tab5"
- android:name="com.example.coolsmile.fragment.fragment_tab5"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- />
- </FrameLayout>
- <RadioGroup
- android:id="@+id/main_tab"
- android:background="@drawable/bottom1"
- android:orientation="horizontal"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:gravity="center_vertical"
- android:layout_gravity="bottom">
- <RadioButton
- android:id="@+id/main_tab_home"
- style="@style/MMTabButton"
- android:layout_weight="1.0"
- android:drawableTop="@drawable/menu_icon_0_normal"
- android:text="@string/main_home"/>
- <RadioButton
- android:id="@+id/main_tab_info"
- style="@style/MMTabButton"
- android:layout_weight="1.0"
- android:drawableTop="@drawable/menu_icon_1_normal"
- android:text="@string/main_my_info" />
- <RadioButton
- android:id="@+id/main_tab_news"
- style="@style/MMTabButton"
- android:layout_weight="1.0"
- android:drawableTop="@drawable/menu_icon_2_normal"
- android:text="@string/main_news" />
- <RadioButton
- android:id="@+id/main_tab_search"
- style="@style/MMTabButton"
- android:layout_weight="1.0"
- android:drawableTop="@drawable/menu_icon_3_normal"
- android:text="@string/main_search"/>
- <RadioButton
- android:id="@+id/main_tab_settings"
- style="@style/MMTabButton"
- android:layout_weight="1.0"
- android:drawableTop="@drawable/menu_icon_3_normal"
- android:focusable="false"
- android:text="@string/main_settings" />
- </RadioGroup>
- <TextView
- android:id="@+id/main_tab_new_message"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="center_horizontal|top"
- android:layout_marginLeft="15dip"
- android:layout_marginTop="-46dip"
- android:background="@drawable/tips"
- android:gravity="center"
- android:textColor="#ffffff"
- android:textSize="10sp"
- android:visibility="visible" />
- </LinearLayout>
- </TabHost>
这里有个Fragment标签
android:name="com.example.coolsmile.fragment.HomeFragment"
这里的android:name="具体的Fragment的实现类"
这里我的Acitivty继承了FargmentActivity,onCreate方法里
[java] view plaincopy
- setContentView(R.layout.activity_main);
- InitUI();
[java] view plaincopy
- private void InitUI(){
- // get Resource R.string
- InitUIString();
- // set Message Number
- TextView main_tab_new_message=(TextView) findViewById(R.id.main_tab_new_message);
- main_tab_new_message.setVisibility(View.VISIBLE);
- main_tab_new_message.setText("6");
- tabHost = (TabHost) findViewById(android.R.id.tabhost);
- tabHost.setup();
- tabHost.addTab(
- tabHost.newTabSpec(main_home).setIndicator(main_home).setContent(R.id.HomeFragment)
- );
- tabHost.addTab(
- tabHost.newTabSpec(main_my_info).setIndicator(main_my_info).setContent(R.id.fragment_tab2)
- );
- tabHost.addTab(
- tabHost.newTabSpec(main_news).setIndicator(main_news).setContent(R.id.fragment_tab3)
- );
- tabHost.addTab(
- tabHost.newTabSpec(main_search).setIndicator(main_search).setContent(R.id.fragment_tab4)
- );
- tabHost.addTab(
- tabHost.newTabSpec(main_settings).setIndicator(main_settings).setContent(R.id.fragment_tab5)
- );
- tabHost.setCurrentTab(0);
- InitClickListener();
- }
- private void InitClickListener(){
- RadioGroup radioGroup=(RadioGroup) this.findViewById(R.id.main_tab);
- radioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() {
- @Override
- public void onCheckedChanged(RadioGroup group, int checkedId) {
- // TODO Auto-generated method stub
- switch (checkedId) {
- case R.id.main_tab_home:
- tabHost.setCurrentTabByTag(main_home);
- break;
- case R.id.main_tab_info:
- tabHost.setCurrentTabByTag(main_my_info);
- break;
- case R.id.main_tab_news:
- tabHost.setCurrentTabByTag(main_news);
- break;
- case R.id.main_tab_search:
- tabHost.setCurrentTabByTag(main_search);
- break;
- case R.id.main_tab_settings:
- tabHost.setCurrentTabByTag(main_settings);
- break;
- default:
- tabHost.setCurrentTabByTag(main_home);
- }
- }
- });
- }
- @Override
- public void onClick(View v) {
- }
- public MainHeader getHeader(){
- return this.header;
- }
- private void InitUIString(){
- main_home = getResources().getString(R.string.main_home);
- main_my_info = getResources().getString(R.string.main_my_info);
- main_news = getResources().getString(R.string.main_news);
- main_search = getResources().getString(R.string.main_search);
- main_settings = getResources().getString(R.string.main_settings);
- }
这里实例了一个效果图的HomeFragMent
[java] view plaincopy
- public class HomeFragment extends Fragment{
- View view;
- String[] presidents = {
- "Dwight D. Eisenhower",
- "John F. Kennedy",
- "Lyndon B. Johnson",
- "Richard Nixon",
- "Gerald Ford",
- "Jimmy Carter",
- "Ronald Reagan",
- "George H. W. Bush",
- "Bill Clinton",
- "George W. Bush",
- "Barack Obama"
- };
- @Override
- public View onCreateView(LayoutInflater inflater, ViewGroup container,
- Bundle savedInstanceState) {
- // TODO Auto-generated method stub
- view = inflater.inflate(R.layout.fragment_tab1,container,false);
- Init();
- return view ;
- }
- protected void Init(){
- ListView list = (ListView)view.findViewById(android.R.id.list);
- list.setAdapter(new ArrayAdapter<String>(getActivity(),
- android.R.layout.simple_list_item_1, presidents));
- list.setOnItemClickListener(listener);
- }
- private OnItemClickListener listener = new OnItemClickListener() {
- @Override
- public void onItemClick(AdapterView<?> parent, View view, int position,
- long id) {
- // TODO Auto-generated method stub
- Intent intent = new Intent(getActivity(), ListContainActivity.class);
- intent.putExtra("PRESIDENTS_CONTENT",presidents[position]);
- getActivity().startActivity(intent);
- }
- };
- }
点击: 下载DEMO
Fragment + TabHost + RadioGroup
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。