关于安卓开发实现底部菜单栏(已过时做法,不建议使用)

简介: 将TabHost的标签放在底部   直接上代码 主代码: 1 package sdut; 2 3 import com.example.sdutfriends.R; 4 5 import android.

将TabHost的标签放在底部

 

直接上代码

主代码:

 1 package sdut;
 2 
 3 import com.example.sdutfriends.R;
 4 
 5 import android.app.AlertDialog;
 6 import android.app.TabActivity;
 7 import android.content.DialogInterface;
 8 import android.content.Intent;
 9 import android.os.Bundle;
10 import android.view.KeyEvent;
11 import android.view.Window;
12 import android.widget.RadioGroup;
13 import android.widget.RadioGroup.OnCheckedChangeListener;
14 import android.widget.TabHost;
15 import android.widget.TabHost.TabSpec;
16 
17 public class SdutMainActivity extends TabActivity{
18     private TabHost mth;
19     private RadioGroup radioGroup;
20     @Override
21     protected void onCreate(Bundle savedInstanceState) {
22         // TODO Auto-generated method stub
23         super.onCreate(savedInstanceState);
24         //去除标题
25         requestWindowFeature(Window.FEATURE_NO_TITLE);
26         setContentView(R.layout.sdut_activity);
27         
28         //初始化底部菜单栏
29         mth = this.getTabHost();
30         
31         TabSpec str1 = mth.newTabSpec("function_1").setIndicator("功能1");
32         str1.setContent(new Intent(SdutMainActivity.this,SdutFindOldman.class));
33         mth.addTab(str1); 
34         
35         TabSpec str2 = mth.newTabSpec("function_2").setIndicator("功能2");
36         str2.setContent(new Intent(SdutMainActivity.this,SdutFindActivity.class));
37         mth.addTab(str2);
38         
39         TabSpec str3 = mth.newTabSpec("function_3").setIndicator("功能3");
40         str3.setContent(new Intent(SdutMainActivity.this,SdutFindOldman.class));
41         mth.addTab(str3);
42         
43         TabSpec str4 = mth.newTabSpec("function_4").setIndicator("功能4");
44         str4.setContent(new Intent(SdutMainActivity.this,SdutFindOldman.class));
45         mth.addTab(str4);
46         
47         TabSpec str5 = mth.newTabSpec("function_5").setIndicator("功能5");
48         str5.setContent(new Intent(SdutMainActivity.this,SdutFindOldman.class));
49         mth.addTab(str5);
50         
51         //底部菜单栏点击事件
52         radioGroup = (RadioGroup) findViewById(R.id.main_radio);
53         radioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() {
54             
55             @Override
56             public void onCheckedChanged(RadioGroup group, int checkedId) {
57                 // TODO Auto-generated method stub
58                 switch(checkedId)
59                 {
60             case R.id.radio_button0:mth.setCurrentTabByTag("function_1");break;
61             case R.id.radio_button1:mth.setCurrentTabByTag("function_2");break;
62             case R.id.radio_button2:mth.setCurrentTabByTag("function_3");break;
63             case R.id.radio_button3:mth.setCurrentTabByTag("function_4");break;
64             case R.id.radio_button4:mth.setCurrentTabByTag("function_5");break;
65 
66                 }
67             }
68         });
69     }
70     
71     //设置 返回键的 按钮响应事件
72     @Override
73     public boolean dispatchKeyEvent(KeyEvent event) {
74         // TODO Auto-generated method stub
75          if (event.getAction() == KeyEvent.ACTION_DOWN && event.getKeyCode() == KeyEvent.KEYCODE_BACK)
76           {
77            new AlertDialog.Builder(this).setCancelable(false).setTitle("温馨提示").setMessage("您确定要退出吗?").setPositiveButton("确定", new DialogInterface.OnClickListener()
78            {
79             public void onClick(DialogInterface dialog, int which)
80             {
81              finish();
82             }
83            }).setNegativeButton("取消", new DialogInterface.OnClickListener()
84            {
85             public void onClick(DialogInterface dialog, int which)
86             {
87             }
88            }).show();
89            return true;// 不知道返回true或是false有什么区别??
90           }
91 
92         return super.dispatchKeyEvent(event);
93     }
94 }
主代码


layout代码

  1 <?xml version="1.0" encoding="utf-8"?>
  2 <TabHost xmlns:android="http://schemas.android.com/apk/res/android"
  3     android:id="@android:id/tabhost"
  4     android:layout_width="fill_parent"
  5     android:layout_height="fill_parent"
  6     android:background="#334455" >                           //总体的背景  可以是图片   可以是颜色
  7     <LinearLayout 
  8         android:layout_width="fill_parent"
  9         android:layout_height="fill_parent"
 10         android:orientation="vertical"
 11         >
 12         <FrameLayout 
 13             android:id="@+id/msg_title"
 14             android:layout_width="fill_parent"
 15             android:layout_height="wrap_content"
 16             android:visibility="gone"
 17             >
 18             <TextView 
 19                 android:id="@+id/tv_wb"
 20                 android:layout_width="fill_parent"
 21                 android:layout_height="wrap_content"
 22                 android:background="@color/白色"/>
 23         </FrameLayout>
 24         <FrameLayout 
 25             android:id="@android:id/tabcontent"
 26             android:layout_width="fill_parent"
 27             android:layout_height="0.0dip"
 28             android:layout_weight="1.0"
 29             />
 30             <TabWidget
 31             android:id="@android:id/tabs"
 32             android:layout_width="fill_parent"
 33             android:layout_height="wrap_content"
 34             android:layout_weight="0.0"
 35             android:visibility="gone" />
 36             <RadioGroup
 37             android:id="@+id/main_radio"
 38             android:layout_width="fill_parent"
 39             android:layout_height="45dp"
 40             android:layout_gravity="bottom"
 41             
 42             android:gravity="center_vertical"
 43             android:orientation="horizontal" >
 44             <RadioButton
 45                 android:id="@+id/radio_button0"
 46                 style="@style/main_tab_bottom"
 47                 android:layout_height="fill_parent"
 48                 android:layout_marginTop="2.0dip"
 49                 android:textColor="@color/白色"                         
 50                 android:background="@color/黑色"
 51                 android:drawableTop="@drawable/icon"         //将图片放在文字上
 52                 android:tag="radio_button0"
 53                 android:text="标签1" />
 54             <RadioButton
 55                 android:id="@+id/radio_button1"
 56                 style="@style/main_tab_bottom"
 57                 android:layout_height="fill_parent"
 58                 android:layout_marginTop="2.0dip"
 59                 android:tag="radio_button1"
 60                 android:textColor="@color/白色"
 61                 android:background="@color/黑色"
 62                 android:drawableTop="@drawable/icon"
 63                 android:text="标签2" />
 64             <RadioButton
 65                 android:id="@+id/radio_button2"
 66                 style="@style/main_tab_bottom"
 67                 android:layout_height="fill_parent"
 68                 android:layout_marginTop="2.0dip"
 69                 android:textColor="@color/白色"
 70                 android:background="@color/黑色"
 71                 android:drawableTop="@drawable/icon"
 72                 android:tag="radio_button2"
 73                 android:text="标签3" />
 74             <RadioButton
 75                 android:id="@+id/radio_button3"
 76                 style="@style/main_tab_bottom"
 77                 android:layout_height="fill_parent"
 78                 android:layout_marginTop="2.0dip"
 79                 android:textColor="@color/白色"
 80                 android:background="@color/黑色"
 81                 android:drawableTop="@drawable/icon"
 82                 android:tag="radio_button3"
 83                 android:text="标签4" />
 84             <RadioButton
 85                 android:id="@+id/radio_button4"
 86                 style="@style/main_tab_bottom"
 87                 android:layout_height="fill_parent"
 88                 android:layout_marginTop="2.0dip"
 89                 android:textColor="@color/白色"
 90                 android:background="@color/黑色"
 91                 android:drawableTop="@drawable/icon"
 92                 android:tag="radio_button4"
 93                 android:text="标签5" />
 94         </RadioGroup>
 95             
 96         
 97     </LinearLayout>
 98     
 99     
100 
101 </TabHost>
layout


style.xml部分增加代码

 1     <style name="main_tab_bottom">
 2         <item name="android:textSize">10.0dip</item>
 3         <item name="android:textColor">#ffffffff</item>
 4         <item name="android:ellipsize">marquee</item>
 5         <item name="android:gravity">center_horizontal</item>
 6         <item name="android:paddingTop">1.0dip</item>
 7         <item name="android:layout_width">fill_parent</item>
 8         <item name="android:layout_height">fill_parent</item>
 9         <item name="android:button">@null</item>
10         <item name="android:singleLine">true</item>
11         <item name="android:drawablePadding">1.0dip</item>
12         <item name="android:layout_weight">1.0</item>
13     </style>
style

color.xml部分

<resources>
        <color name="黑色">#000000</color>
        <color name="白色">#FFFFFF</color>
</resources>

 

TabSpec str1 = mth.newTabSpec("function_1").setIndicator("功能1");
  str1.setContent(new Intent(SdutMainActivity.this,SdutFindOldman.class));
  mth.addTab(str1);
  
  TabSpec str2 = mth.newTabSpec("function_2").setIndicator("功能2");
  str2.setContent(new Intent(SdutMainActivity.this,SdutFindActivity.class));
  mth.addTab(str2);

 

这里的SdutFindOldman.class,,,SdutFindActivity.class代码就不贴了

效果图:

       

相关文章
|
19天前
|
开发框架 前端开发 Android开发
安卓与iOS开发中的跨平台策略
在移动应用开发的战场上,安卓和iOS两大阵营各据一方。随着技术的演进,跨平台开发框架成为开发者的新宠,旨在实现一次编码、多平台部署的梦想。本文将探讨跨平台开发的优势与挑战,并分享实用的开发技巧,帮助开发者在安卓和iOS的世界中游刃有余。
|
21天前
|
缓存 前端开发 Android开发
安卓开发中的自定义视图:从零到英雄
【10月更文挑战第42天】 在安卓的世界里,自定义视图是一块画布,让开发者能够绘制出独一无二的界面体验。本文将带你走进自定义视图的大门,通过深入浅出的方式,让你从零基础到能够独立设计并实现复杂的自定义组件。我们将探索自定义视图的核心概念、实现步骤,以及如何优化你的视图以提高性能和兼容性。准备好了吗?让我们开始这段创造性的旅程吧!
22 1
|
24天前
|
搜索推荐 Android开发 开发者
探索安卓开发中的自定义视图:打造个性化UI组件
【10月更文挑战第39天】在安卓开发的世界中,自定义视图是实现独特界面设计的关键。本文将引导你理解自定义视图的概念、创建流程,以及如何通过它们增强应用的用户体验。我们将从基础出发,逐步深入,最终让你能够自信地设计和实现专属的UI组件。
|
6天前
|
搜索推荐 前端开发 API
探索安卓开发中的自定义视图:打造个性化用户界面
在安卓应用开发的广阔天地中,自定义视图是一块神奇的画布,让开发者能够突破标准控件的限制,绘制出独一无二的用户界面。本文将带你走进自定义视图的世界,从基础概念到实战技巧,逐步揭示如何在安卓平台上创建和运用自定义视图来提升用户体验。无论你是初学者还是有一定经验的开发者,这篇文章都将为你打开新的视野,让你的应用在众多同质化产品中脱颖而出。
33 19
|
19天前
|
IDE Java 开发工具
移动应用与系统:探索Android开发之旅
在这篇文章中,我们将深入探讨Android开发的各个方面,从基础知识到高级技术。我们将通过代码示例和案例分析,帮助读者更好地理解和掌握Android开发。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的信息和技巧。让我们一起开启Android开发的旅程吧!
|
6天前
|
JSON Java API
探索安卓开发:打造你的首个天气应用
在这篇技术指南中,我们将一起潜入安卓开发的海洋,学习如何从零开始构建一个简单的天气应用。通过这个实践项目,你将掌握安卓开发的核心概念、界面设计、网络编程以及数据解析等技能。无论你是初学者还是有一定基础的开发者,这篇文章都将为你提供一个清晰的路线图和实用的代码示例,帮助你在安卓开发的道路上迈出坚实的一步。让我们一起开始这段旅程,打造属于你自己的第一个安卓应用吧!
30 14
|
9天前
|
Java Linux 数据库
探索安卓开发:打造你的第一款应用
在数字时代的浪潮中,每个人都有机会成为创意的实现者。本文将带你走进安卓开发的奇妙世界,通过浅显易懂的语言和实际代码示例,引导你从零开始构建自己的第一款安卓应用。无论你是编程新手还是希望拓展技术的开发者,这篇文章都将为你打开一扇门,让你的创意和技术一起飞扬。
|
7天前
|
XML 存储 Java
探索安卓开发之旅:从新手到专家
在数字时代,掌握安卓应用开发技能是进入IT行业的关键。本文将引导读者从零基础开始,逐步深入安卓开发的世界,通过实际案例和代码示例,展示如何构建自己的第一个安卓应用。我们将探讨基本概念、开发工具设置、用户界面设计、数据处理以及发布应用的全过程。无论你是编程新手还是有一定基础的开发者,这篇文章都将为你提供宝贵的知识和技能,帮助你在安卓开发的道路上迈出坚实的步伐。
17 5
|
6天前
|
开发框架 Android开发 iOS开发
安卓与iOS开发中的跨平台策略:一次编码,多平台部署
在移动应用开发的广阔天地中,安卓和iOS两大阵营各占一方。随着技术的发展,跨平台开发框架应运而生,它们承诺着“一次编码,到处运行”的便捷。本文将深入探讨跨平台开发的现状、挑战以及未来趋势,同时通过代码示例揭示跨平台工具的实际运用。
|
7天前
|
XML 搜索推荐 前端开发
安卓开发中的自定义视图:打造个性化UI组件
在安卓应用开发中,自定义视图是一种强大的工具,它允许开发者创造独一无二的用户界面元素,从而提升应用的外观和用户体验。本文将通过一个简单的自定义视图示例,引导你了解如何在安卓项目中实现自定义组件,并探讨其背后的技术原理。我们将从基础的View类讲起,逐步深入到绘图、事件处理以及性能优化等方面。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的见解和技巧。