android,我发现几乎80%的应用程序,尤其是工具软件、管理软件等。都是一排底部菜单,然后切换来切换去,搞几个页面。这篇文章,是我接触android平台开发的第一篇移动方面的博客。很久了,都没有写的博客,因为自己结束了一段可笑的感情经历,终于解脱了。
我从不说废话,直接上代码。
[list]
配置文件
<?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" >
<include layout="@layout/activity_title" />
<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" />
<RadioGroup
android:id="@+id/main_radio"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:gravity="center_vertical"
android:orientation="horizontal" >
<RadioButton
android:id="@+id/radio_btn0"
style="@style/main_tab_bottom"
android:checked="true"
android:drawableTop="@drawable/drawable_home"
android:selectAllOnFocus="false"
android:tag="radio_btn0"
android:text="@string/btn0" />
<RadioButton
android:id="@+id/radio_btn1"
style="@style/main_tab_bottom"
android:drawableTop="@drawable/drawable_news"
android:tag="radio_btn1"
android:text="@string/btn1" />
<RadioButton
android:id="@+id/radio_btn2"
style="@style/main_tab_bottom"
android:drawableTop="@drawable/drawable_notice"
android:tag="radio_btn2"
android:text="@string/btn2" />
<RadioButton
android:id="@+id/radio_btn3"
style="@style/main_tab_bottom"
android:drawableTop="@drawable/drawable_topic"
android:tag="radio_btn3"
android:text="@string/btn3" />
<RadioButton
android:id="@+id/radio_btn4"
style="@style/main_tab_bottom"
android:drawableTop="@drawable/drawable_exit"
android:tag="radio_btn4"
android:text="@string/btn4" />
</RadioGroup>
</LinearLayout>
</TabHost>
activity
package com.example.test;
import android.app.AlertDialog;
import android.app.TabActivity;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.RadioGroup.OnCheckedChangeListener;
import android.widget.TabHost;
import android.widget.TextView;
@SuppressWarnings("deprecation")
public class MainActivity extends TabActivity implements OnCheckedChangeListener{
private TabHost mHost = null;
private RadioGroup radioGroup = null;
private RadioButton currentRadioBtn = null;
private RadioButton previousRadioBtn = null;
private TextView currentTitle = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
previousRadioBtn = (RadioButton)findViewById(R.id.radio_btn0);
mHost = this.getTabHost();
mHost.addTab(mHost.newTabSpec("ONE").setIndicator("ONE").setContent(new Intent(this,OneActivity.class)));
mHost.addTab(mHost.newTabSpec("TWO").setIndicator("TWO").setContent(new Intent(this,TwoActivity.class)));
mHost.addTab(mHost.newTabSpec("THREE").setIndicator("THREE").setContent(new Intent(this,ThreeActivity.class)));
mHost.addTab(mHost.newTabSpec("FOUR").setIndicator("FOUR").setContent(new Intent(this,FourActivity.class)));
mHost.addTab(mHost.newTabSpec("FIVE").setIndicator("FIVE").setContent(new Intent(this,FiveActivity.class)));
radioGroup = (RadioGroup) findViewById(R.id.main_radio);
radioGroup.setOnCheckedChangeListener(this);
this.getWindow().setBackgroundDrawable(this.getResources().getDrawable(R.drawable.backColor));
}
@Override
public void onCheckedChanged(RadioGroup group, final int checkedId) {
currentRadioBtn = (RadioButton)findViewById(checkedId);
currentTitle = (TextView)findViewById(R.id.title);
switch(checkedId){
case R.id.radio_btn0:
mHost.setCurrentTabByTag("ONE");
currentTitle.setText(R.string.btn0);
break;
case R.id.radio_btn1:
mHost.setCurrentTabByTag("TWO");
currentTitle.setText(R.string.btn1);
break;
case R.id.radio_btn2:
mHost.setCurrentTabByTag("THREE");
currentTitle.setText(R.string.btn2);
break;
case R.id.radio_btn3:
mHost.setCurrentTabByTag("FOUR");
currentTitle.setText(R.string.btn3);
break;
case R.id.radio_btn4:
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage(R.string.confirmExit).setCancelable(false).setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
MainActivity.this.finish();
}
}).setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
if(previousRadioBtn!=null){
previousRadioBtn.setChecked(true);
}
dialog.cancel();
}
});
builder.create().show();
break;
}
if(checkedId!=R.id.radio_btn4){
previousRadioBtn = (RadioButton)findViewById(checkedId);
}
}
}
效果图
[img]
[/img]
[/list]
- 大小: 71.3 KB
分享到:
相关推荐
"基于android平台计算机视频教育管理系统的设计与实现" 本文主要介绍了基于Android平台计算机视频教育管理系统的设计与实现。该系统旨在为计算机专业学生提供一个视频教育管理平台,收集、整理、分享计算机视频课程...
"基于Android平台的“传统文化”APP设计" 本文主要介绍基于Android平台的“传统文化”APP设计,旨在让用户在网络上进行传统文化的学习,并将传统文化与现代的流行元素相结合,使之能够符合大众的口味,让其能够源远...
基于QT的底部导航栏,类似于微信的页面,采用QML实现的
基于Android+HTML5的移动Web项目高效开发探究 研究生姓名: 唐帅 导师姓名: 罗军舟 教授 苏生 教授 申请学位类别 工 程 硕 士 学位授予单位 东 南 大 学 工程领域名称 软 件 工 程 论文答辩日期 研究方向 ...
效果图看上一版本http://www.apkbus.com/android-116690-1-1.html,上一版本是利用activitygroup实现底部菜单切换,基于现在都不太赞同用,于是简单地利用fragment 来实现了这一效果,IndexActivity为底部菜单的首页...
做项目时候下了几个Android底部导航栏,共3个demo。第一个是仿QQ空间实现的demo,用popwindow实现弹窗效果;第二个是仿微信底部导航栏,能够左右滑动。第三个是基于groupradio实现的底部导航栏。经过测试三个导入...
本毕设论文旨在设计和实现基于 Android 环境的俄罗斯方块游戏。该游戏基于 Android 操作系统,使用 Eclipse 作为开发工具,采用 Java 语言进行编程。游戏的主要规则是移动、旋转和摆放游戏自动输出的各种方块,使之...
本项目应用Google界面设计语言Material Design来设计UI,也就是按照Android5.0之后所有内置应用的界面风格来进行设计。 用户打开应用后会进入欢迎界面,然后进行注册登录,主界面有3个底部导航栏:首页、购物车和我...
2、查找联系人 用户点击menu键打开底部菜单框,底部菜单框为查询系人提供入口,进入通讯录的缺省页面为联系人列表,在列表中看到所有联系人的姓名、电话息排列,用户点击查找按键输入联系人基本信息,,通讯录显...
创建自定义布局的步骤:编写一个自定义xml布局,将这个自定义xml布局实例化成Java布局类(继承布局类实现),在布局类中直接添加功能,最后将这个类写入父类的xml布局文件里。 3.掌握 Android 中的数据存储。五种...
基于android开发,实现底部菜单栏代码
微信的主界面滑动其实就是使用TAB的效果,每滑动一下,就会改变TAB的一个界面,很多地方都可应用此效果,除了TAB的学习外,你还可研究下像微信那样的四个底部菜单的实现方法,如何根据传入的index参数来设置选中的...
点击屏幕中部,屏幕底部出现菜单:夜间/日间、横屏/竖屏、设置、目录;点击“夜间/日间”切换到夜间/日间模式;点击“横屏/竖屏”切换到横屏/竖屏模式;点击“设置”出现字体大小调整界面,点击“A-”减小字体大小,...
该源码支持实现支持底部菜单切换效果源码,基于现在都不太赞同用,于是简单地利用fragment 来实现了这一效果,IndexActivity为底部菜单的首页,MainFragment 和LoginActivity 都为它的子fragment.底部菜单用的是一个...
级联菜单,两级菜单自定义实现提供多种方式PopWindow,Fragment引用..rar 自动判断位置的弹出菜单.zip 菜单动画(类似QQ空间)Demo.zip 菜单类似QQ的设置面板的侧滑菜单布局.zip 调用GoogleMap源码,点击事件在注释...
该源码支持实现支持底部菜单切换效果源码,基于现在都不太赞同用,于是简单地利用fragment 来实现了这一效果,IndexActivity为底部菜单的首页,MainFragment 和LoginActivity 都为它的子fragment.底部菜单用的是一个...
底部导航栏一共有四个模块(游戏、新闻、充值、我的),其主要是利用“bottomnavigation+fragment”来实现的,bottomnavigation可以理解为底部导航菜单,fragment本意是碎片,在这里是指每一个模块里边所对应的内容...
每日精选: 首页采用下拉刷新+RecyclerView 实现,Banner展示每日精选推荐的视频,监听 RecyclerView 的滑动事件,实现 TitleBar 的隐藏显示功能,底部菜单采用高斯模糊的半透明效果,使整个 APP 风格更加清爽。...
本应用是基于android studio2.2开发的android新闻类客户端,仿网易新闻客户端 一,如何部署: 1,部署tomcat服务器: 解压apache-tomcat-6.0.36-windows-x64.zip至d盘, 把zhbj这个文件夹放置到D:\apache-tomcat-...