您的位置:首页 > 其它

Fragment + TabHost + RadioGroup

2014-11-24 21:20 330 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: