使用 RadioGroup+TabHost 搭建框架实现 导航 切换
来源:互联网 发布:mac 终端设置时间 编辑:程序博客网 时间:2024/06/04 08:43
先看效果图:
我这里要演示的效果就是使用RadioGroup+TabHost 实现如图所示的类别的切换。
不多说。看代码:
1.首先:创建项目。
2.在layout 中创建页面这里为main.xml。在.xml文件中会需要用到一些素材,这里我就不上传了。
<?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:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <FrameLayout android:id="@android:id/tabcontent" android:layout_width="fill_parent" android:layout_height="0.0dip" android:layout_weight="1.0" /> <TabWidget android:id="@android:id/tabs" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="0.0" android:visibility="gone" /> <LinearLayout android:id="@+id/console_line_bottom" android:layout_width="match_parent" android:layout_height="50dp" android:layout_alignParentBottom="true" android:background="@drawable/main_navigation_background" android:orientation="horizontal" > <RadioGroup android:id="@+id/main_tab_group" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_gravity="bottom" android:background="@drawable/main_navigation_background" android:gravity="bottom" android:orientation="horizontal" android:paddingTop="2.0dip" > <RadioButton android:id="@+id/main_tab_home" style="@style/main_tab_bottom" android:checked="true" android:drawableTop="@drawable/main_navigation_home" android:text="@string/main_navigation_home" /> <RadioButton android:id="@+id/main_tab_catagory" style="@style/main_tab_bottom" android:drawableTop="@drawable/main_navigation_catagory" android:text="@string/main_navigation_catagory" /> <RadioButton android:id="@+id/main_tab_car" style="@style/main_tab_bottom" android:drawableTop="@drawable/main_navigation_car" android:text="@string/main_navigation_car" /> <RadioButton android:id="@+id/main_tab_buy" style="@style/main_tab_bottom" android:drawableTop="@drawable/main_navigation_personal" android:text="@string/main_code_buy" /> <RadioButton android:id="@+id/main_tab_more" style="@style/main_tab_bottom" android:drawableTop="@drawable/main_navigation_more" android:text="@string/main_navigation_more" /> </RadioGroup> </LinearLayout> </LinearLayout></TabHost>3.在src中创建Activity ,这里为JdscActivity.结合TabHost实现栏目的切换。
import cn.com.util.ExitManager;import android.app.AlertDialog;import android.app.TabActivity;import android.content.DialogInterface;import android.content.Intent;import android.os.Bundle;import android.view.KeyEvent;import android.view.View;import android.view.View.OnClickListener;import android.widget.RadioButton;import android.widget.TabHost;public class JdscActivity extends TabActivity {TabHost tabHost;private RadioButton main_tab_home, main_tab_catagory, main_tab_car,main_tab_buy, main_tab_more; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); initTab(); init(); ExitManager.getInstance().addActivity(this); } //获取页面上的5个RadioButton。根据tabHost.setCurrentTabByTag("home");并分别绑定点击事件。 public void init(){ main_tab_home=(RadioButton)findViewById(R.id.main_tab_home); main_tab_catagory = (RadioButton) findViewById(R.id.main_tab_catagory);main_tab_car = (RadioButton) findViewById(R.id.main_tab_car);main_tab_buy = (RadioButton) findViewById(R.id.main_tab_buy);main_tab_more = (RadioButton) findViewById(R.id.main_tab_more);main_tab_home.setOnClickListener(new OnClickListener() {public void onClick(View view) {tabHost.setCurrentTabByTag("home");}});main_tab_catagory.setOnClickListener(new OnClickListener() {public void onClick(View view) {tabHost.setCurrentTabByTag("catagory");}});main_tab_car.setOnClickListener(new OnClickListener() {public void onClick(View view) {tabHost.setCurrentTabByTag("car");}});main_tab_buy.setOnClickListener(new OnClickListener() {public void onClick(View view) {tabHost.setCurrentTabByTag("buy");}});main_tab_more.setOnClickListener(new OnClickListener() {public void onClick(View view) {tabHost.setCurrentTabByTag("more");}}); } //tabHost点击事件。 public void initTab(){ tabHost=getTabHost(); tabHost.addTab(tabHost.newTabSpec("home").setIndicator("home").setContent(new Intent(this, HomeActivity.class))); tabHost.addTab(tabHost.newTabSpec("catagory").setIndicator("catagory").setContent(new Intent(this, HomeActivity.class)));tabHost.addTab(tabHost.newTabSpec("car").setIndicator("car").setContent(new Intent(this, HomeActivity.class)));tabHost.addTab(tabHost.newTabSpec("buy").setIndicator("buy").setContent(new Intent(this, BuyActivity.class)));tabHost.addTab(tabHost.newTabSpec("more").setIndicator("more").setContent(new Intent(this, HomeActivity.class))); } //获取手机的返回键,并绑定返回事件。弹出框 public boolean dispatchKeyEvent( KeyEvent event) {int keyCode=event.getKeyCode(); if (keyCode == KeyEvent.KEYCODE_BACK) {if (event.getRepeatCount() == 0) {AlertDialog.Builder alertDialog = new AlertDialog.Builder(JdscActivity.this);alertDialog.setTitle(JdscActivity.this.getString(R.string.app_close));alertDialog.setPositiveButton(JdscActivity.this.getString(R.string.btn_ok),new DialogInterface.OnClickListener() {public void onClick(DialogInterface dialog,int which) {ExitManager.getInstance().exit();}});alertDialog.setNegativeButton(JdscActivity.this.getString(R.string.btn_cancel),new DialogInterface.OnClickListener() {public void onClick(DialogInterface dialog,int which) {}});alertDialog.show();}}return super.dispatchKeyEvent(event);}}4.到此时其实切换的效果已经实现了,不过在第3步中Rediobutton有需要绑定的事件,这里我再写两个页面进行来测试。
(1)创建HomeActivity类和main_home.xml文件。
package cn.com.jdsc;import android.app.Activity;import android.os.Bundle;public class HomeActivity extends Activity{ @Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main_home);}}main_home.xml:
<?xml version="1.0" encoding="UTF-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/empty_cart_view" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#ffefebe7"> <RelativeLayout android:id="@+id/top_relative" android:layout_width="fill_parent" android:layout_height="50.0dip" > <ImageView android:id="@+id/titleBg" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#106184" /> <ImageView android:id="@+id/progressImage" android:layout_width="0.0dip" android:layout_height="fill_parent" android:background="@drawable/android_title_bg_progress" android:visibility="gone" /> <Button android:id="@+id/titleRightButton" style="\@style/title_right_button" android:layout_width="100.0dip" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:layout_gravity="center_vertical" android:layout_marginRight="5.0dip" android:layout_marginTop="2.0dip" android:visibility="gone" /> <TextView android:id="@+id/titleText" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_centerInParent="true" android:textSize="15dp" android:padding="10.0dip" android:text="我的京东" android:textColor="@color/white" android:singleLine="true" /></RelativeLayout></RelativeLayout>(2)创建BuyActivity类和main_buy.xml文件。
package cn.com.jdsc;import android.app.Activity;import android.os.Bundle;public class BuyActivity extends Activity{ @Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main_buy);}}
main_buy.xml文件
<?xml version="1.0" encoding="UTF-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/empty_cart_view" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#ffefebe7"> <RelativeLayout android:id="@+id/top_relative" android:layout_width="fill_parent" android:layout_height="50.0dip" > <ImageView android:id="@+id/titleBg" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#106184" /> <ImageView android:id="@+id/progressImage" android:layout_width="0.0dip" android:layout_height="fill_parent" android:background="@drawable/android_title_bg_progress" android:visibility="gone" /> <Button android:id="@+id/titleRightButton" style="\@style/title_right_button" android:layout_width="100.0dip" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:layout_gravity="center_vertical" android:layout_marginRight="5.0dip" android:layout_marginTop="2.0dip" android:visibility="gone" /> <TextView android:id="@+id/titleText" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_centerInParent="true" android:textSize="15dp" android:padding="10.0dip" android:text="我的京东" android:textColor="@color/white" android:singleLine="true" /></RelativeLayout> <ScrollView android:id="@+id/regist_scroller" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_below="@id/top_relative" android:background="#ffefebe7"> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical" > <RelativeLayout android:id="@+id/regist_scroller_relative" android:layout_width="fill_parent" android:layout_height="wrap_content" android:padding="10.0dip" > <TextView android:id="@+id/login_page_input_name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="10.0dip" android:layout_marginTop="20.0dip" android:paddingTop="10.0dip" android:textColor="@color/black" android:text="证书名称:" /> <EditText android:id="@+id/login_input_name" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignTop="@+id/login_page_input_name" android:layout_toRightOf="@+id/login_page_input_name" android:background="@drawable/edit_text_x" android:hint="请选出证书" android:singleLine="true" android:editable="false"/> <TextView android:id="@+id/login_page_input_password" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/login_page_input_name" android:layout_marginLeft="10.0dip" android:layout_marginTop="25.0dip" android:paddingTop="10.0dip" android:textColor="@color/black" android:text="证书密码:" /> <EditText android:id="@+id/login_input_password" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignLeft="@+id/login_input_name" android:layout_alignTop="@+id/login_page_input_password" android:layout_below="@+id/login_input_name" android:layout_toRightOf="@+id/login_page_input_password" android:background="@drawable/edit_text_x" android:hint="请输入证书密码" android:inputType="textPassword" android:singleLine="true" /> <CheckBox android:id="@+id/remember_user" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/login_input_password" android:layout_below="@+id/login_input_password" android:layout_marginTop="15.0dip" android:button="@drawable/login_remember" android:textColor="@color/black" android:text="记住我" /> <Button android:id="@+id/login_comfirm_button" android:layout_width="145.0dip" android:layout_height="wrap_content" android:layout_below="@+id/remember_user" android:layout_marginLeft="10.0dip" android:layout_marginTop="15.0dip" android:text="登录" android:background="@drawable/android_big_button_x" android:gravity="center" android:textColor="#ff000000" android:textSize="20.0sp" /> <Button android:id="@+id/register_link" android:layout_width="145.0dip" android:layout_height="wrap_content" android:layout_below="@+id/remember_user" android:layout_marginLeft="5.0dip" android:layout_marginTop="15.0dip" android:background="@drawable/android_big_button_x" android:gravity="center" android:layout_toRightOf="@+id/login_comfirm_button" android:text="注册" android:textColor="#ff000000" android:textSize="20.0sp" /> </RelativeLayout> </LinearLayout> </ScrollView></RelativeLayout>
5.最后别忘记在AndroidManifest.xml中配置Activity、
<application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <activity android:label="@string/app_name" android:name=".JdscActivity" > <intent-filter > <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".HomeActivity"/> <activity android:name=".BuyActivity"/> </application>
6.以下是.xml文件中用到的样式,以及显示的汉字。
页面显示的样式自己可以更改。我这里写出来的是我图片上的效果。但是还有一些图片我就不上传了。有点多。
drawables.xml
<?xml version="1.0" encoding="utf-8"?><resources> <item type="drawable" name="transparent_background">#99000000</item><item type="drawable" name="transparent">#00000000</item> <item type="drawable" name="list_row_mormal">#ffffffff</item> <item type="drawable" name="list_row_zeng">#fffffddd</item> <item type="drawable" name="list_row_pressed">#ffeeeeee</item></resources>
style.xml
<?xml version="1.0" encoding="utf-8"?><resources><style name="Title"><item name="android:textColor">#ff000000</item><item name="android:layout_width">wrap_content</item><item name="android:layout_height">wrap_content</item><item name="android:layout_centerVertical">true</item><item name="android:paddingLeft">10dip</item></style><style name="StyleListViewItem"><item name="android:textSize">20px</item><item name="android:textColor">#ff000000</item></style><style name="main_tab_bottom"> <item name="android:textSize">@dimen/bottom_tab_font_size</item> <item name="android:ellipsize">marquee</item> <item name="android:gravity">center_horizontal</item> <item name="android:background">@drawable/home_btn_bg</item> <item name="android:paddingTop">@dimen/bottom_tab_padding_up</item> <item name="android:layout_width">fill_parent</item> <item name="android:layout_height">wrap_content</item> <item name="android:button">@null</item> <item name="android:singleLine">true</item> <item name="android:drawablePadding">@dimen/bottom_tab_padding_drawable</item> <item name="android:layout_weight">1.0</item> </style> <style name="Transparent"> <item name="android:windowBackground">@drawable/transparent_background</item> <item name="android:windowNoTitle">true</item> <item name="android:windowIsTranslucent">true</item> <item name="android:windowContentOverlay">@null</item> <item name="android:windowAnimationStyle">@android:style/Animation.Translucent</item> </style> <style name="layout_title"> <item name="android:textSize">15.0dip</item> <item name="android:textColor">#ffffffcc</item> <item name="android:layout_width">fill_parent</item> <item name="android:layout_height">wrap_content</item> </style> <style name="line1"> <item name="android:background">#ffcccccc</item> <item name="android:layout_width">fill_parent</item> <item name="android:layout_height">1.0dip</item> </style></resources>
dimens.xml
<?xml version="1.0" encoding="utf-8"?><resources> <dimen name="button_height">45.0dip</dimen> <dimen name="bottom_tab_font_size">12.0dip</dimen> <dimen name="bottom_tab_padding_up">5.0dip</dimen> <dimen name="bottom_tab_padding_drawable">2.0dip</dimen> </resources>
string.xml
<?xml version="1.0" encoding="utf-8"?><resources> <string name="app_name">京东商城</string> <string name="ActivityMainTitle">京东商城</string> <string name="main_navigation_home">首页</string> <string name="main_navigation_catagory">分类</string> <string name="main_navigation_car">购物车</string> <string name="main_code_buy">我的京东</string> <string name="main_navigation_more">更多</string> <string name="app_close">关闭应用程序</string> <string name="btn_cancel">取 消</string> <string name="btn_ok">确 定</string> <string name="cart_item_hint">购物车还是空的,快去选购吧~ !</string></resources>
colors.xml
<?xml version="1.0" encoding="UTF-8"?><resources> <color name="white">#ffffffff</color> <color name="light_gray">#ffe6e6e6</color> <color name="black">#ff000000</color></resources>
运行效果:
点击我的京东:
源码下载:http://download.csdn.net/detail/u010469432/6767435
0 0
- 使用 RadioGroup+TabHost 搭建框架实现 导航 切换
- android RadioGroup+TabHost实现导航栏
- TabHost、RadioGroup实现底部菜单导航
- TabHost+RadioGroup实现底部导航栏
- RadioGroup+TabHost组合实现底部导航
- TabHost、RadioGroup、ToolBar实现底部菜单导航
- 使用RadioGroup切换tabhost的问题
- Fragment 搭建框架 实现 导航 切换
- ViewPager与RadioGroup实现导航切换
- android TabHost导航切换实现方式
- 使用TabHost+Fragment实现导航
- 使用RadioGroup实现底部导航栏
- RadioGroup + Fragment实现项目框架搭建
- 基于RadioGroup的TabHost实现
- 妙用TabHost----TabHost+RadioGroup组合使用
- 使用TabHost和FrameLayout实现导航
- RadioGroup实现底部导航
- 使用TabHost和ViewPager实现页面切换
- 用JS代码解决一个聊天系统聊天消息是否刷屏
- java压缩与解压缩文件(利用apache的ant.jar)
- "What Child is This?" - The answer is in this favorite Christmas song
- 下载器草稿pdf
- 求m个元素集合中n个元素的所有子集(C/OC)
- 使用 RadioGroup+TabHost 搭建框架实现 导航 切换
- 如何实现对Windows网络的访问控制
- Linux下MySQL启动失败
- 一个中兴的面试题,输入两个数n和m,从数列1,2,3……n中随意取几个数,使其和等于m,要求将其中所有组合列出来编程求解(c语言递归函数分解法)
- 用QRCode生成带有中间logo图的二维码
- android自定义view-绘制顺序及相关原理
- Spring3.0和3.1新定时任务节点
- [转]linux进程的最大文件数
- TabHost的使用