首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

android底部菜单使用

2012-09-03 
android底部菜单应用?首先看布局文件:????需要注意的是,如果用TabHost这个控件,其中有几个ID是必须这么写

android底部菜单应用


?

首先看布局文件:

?

?

?

?

需要注意的是,如果用TabHost这个控件,其中有几个ID是必须这么写的,android:id="@android:id/tabhost?? ;android:id="@android:id/tabcontent" ;android:id="@android:id/tabs" ;之所以要这么写是因为在TabHost这个类中。需要实例化上述这个ID的控件。看源码:

?

在TabActivity类中有么个方法:

?

?

?

?当内容发生改变时它会调用这个方法,来更新列表或者其他视图,而这个方法中需要实例化TabHost,所以必须通过ID为tabhost实例化。

?

再看看TabHost这个类中,

?

?

?

?

?

?这个方法,是在增加选项卡之前由系统调用。在这个方法中需要通过tabs 这个ID实例化一个TabWidget,通过tabcontent这个ID实例化一个FrameLayout,用来放置选项卡内容。所以这两个ID也是固定的。

?

在上述布局文件中隐藏了系统默认的Widget,取而代之的是带有图片的Button。

?

看一下主要代码:

?

package com.iteye.androidtoast;     import android.app.TabActivity;   import android.content.Intent;   import android.os.Bundle;   import android.widget.RadioGroup;   import android.widget.RadioGroup.OnCheckedChangeListener;   import android.widget.TabHost;     public class MainActivity extends TabActivity implements OnCheckedChangeListener{       /** Called when the activity is first created. */      private TabHost mHost;       private RadioGroup radioderGroup;       @Override      public void onCreate(Bundle savedInstanceState) {           super.onCreate(savedInstanceState);           setContentView(R.layout.maintabs);           //实例化TabHost           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)));                      radioderGroup = (RadioGroup) findViewById(R.id.main_radio);           radioderGroup.setOnCheckedChangeListener(this);       }       @Override      public void onCheckedChanged(RadioGroup group, int checkedId) {           switch(checkedId){           case R.id.radio_button0:               mHost.setCurrentTabByTag("ONE");               break;           case R.id.radio_button1:               mHost.setCurrentTabByTag("TWO");               break;           case R.id.radio_button2:               mHost.setCurrentTabByTag("THREE");               break;           case R.id.radio_button3:               mHost.setCurrentTabByTag("FOUR");               break;           case R.id.radio_button4:               mHost.setCurrentTabByTag("FIVE");               break;           }              }   }  

?

?

?这个应该没有什么好难理解的。OK该睡了。有什么问题留言!

?

热点排行