android学习日记03--常用控件tabSpec/tabHost
2014-02-12 21:00
393 查看
[b]常用控件[/b]
7、TabSpec和TabHost
比较常用的控件,感觉手机QQ的整体布局就是这个,只不过tab放在底部而已。TabSpec相当于浏览器的分页,而TabHost就相当于分页的集合
TabSpec分页可以相当于一个独立的组件,也可以是一个布局,将每个分页装进TabHost里
Activity extends TabActivity
以前都是 继承android.app.Activity
这里为了获得Activity分页菜单,继承它,显然TabActivity和Activity有同个父类。
创建分页菜单对象,将activity_main装进去
tableHost = this.getTabHost();
LayoutInflater.from(this).inflate(R.layout.activity_main,tableHost.getTabContentView());
通过newTabSpec 来创建分页
ts1 = tableHost.newTabSpec("tab1");
设置名称和背景图
ts2.setIndicator("tab2", getResources().getDrawable(R.drawable.bg));
添加组件
ts2.setContent(R.id.et);
通过addtab加进去
tableHost.addTab(ts1);
tableHost.addTab(ts2);
tableHost.addTab(ts3);
设置监听
tableHost.setOnTabChangedListener(this);
arg0 表示传入的tab名称
@Override
public void onTabChanged(String arg0) {
if (arg0.equals("tab1")) {
Toast.makeText(this, "分页1", Toast.LENGTH_LONG).show();
} else if(arg0.equals("tab2")){
Toast.makeText(this, "分页2", Toast.LENGTH_LONG).show();
}else if(arg0.equals("tab3")){
Toast.makeText(this, "分页3", Toast.LENGTH_LONG).show();
}
}
完整代码和运行效果如下:
View Code
关于不同Tab页面的View间如何通信后面再讲。
7、TabSpec和TabHost
比较常用的控件,感觉手机QQ的整体布局就是这个,只不过tab放在底部而已。TabSpec相当于浏览器的分页,而TabHost就相当于分页的集合
TabSpec分页可以相当于一个独立的组件,也可以是一个布局,将每个分页装进TabHost里
Activity extends TabActivity
以前都是 继承android.app.Activity
这里为了获得Activity分页菜单,继承它,显然TabActivity和Activity有同个父类。
创建分页菜单对象,将activity_main装进去
tableHost = this.getTabHost();
LayoutInflater.from(this).inflate(R.layout.activity_main,tableHost.getTabContentView());
通过newTabSpec 来创建分页
ts1 = tableHost.newTabSpec("tab1");
设置名称和背景图
ts2.setIndicator("tab2", getResources().getDrawable(R.drawable.bg));
添加组件
ts2.setContent(R.id.et);
通过addtab加进去
tableHost.addTab(ts1);
tableHost.addTab(ts2);
tableHost.addTab(ts3);
设置监听
tableHost.setOnTabChangedListener(this);
arg0 表示传入的tab名称
@Override
public void onTabChanged(String arg0) {
if (arg0.equals("tab1")) {
Toast.makeText(this, "分页1", Toast.LENGTH_LONG).show();
} else if(arg0.equals("tab2")){
Toast.makeText(this, "分页2", Toast.LENGTH_LONG).show();
}else if(arg0.equals("tab3")){
Toast.makeText(this, "分页3", Toast.LENGTH_LONG).show();
}
}
完整代码和运行效果如下:
package com.example.tabproject; import android.os.Bundle; import android.app.Activity; import android.app.TabActivity; import android.view.LayoutInflater; import android.view.Menu; import android.widget.TabHost; import android.widget.Toast; import android.widget.TabHost.OnTabChangeListener; import android.widget.TabHost.TabSpec; public class MainActivity extends TabActivity implements OnTabChangeListener{ private TabSpec ts1,ts2,ts3; private TabHost tableHost; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); tableHost = this.getTabHost(); LayoutInflater.from(this).inflate(R.layout.activity_main,tableHost.getTabContentView()); ts1 = tableHost.newTabSpec("tab1"); ts1.setIndicator("tab1"); ts1.setContent(R.id.btn); ts2 = tableHost.newTabSpec("tab2"); ts2.setIndicator("tab2", getResources().getDrawable(R.drawable.bg)); ts2.setContent(R.id.et); ts3 = tableHost.newTabSpec("tab3"); ts3.setContent(R.id.layout); ts3.setIndicator("tab3", getResources().getDrawable(R.drawable.pg2)); ts3.setContent(R.id.et); tableHost.addTab(ts1); tableHost.addTab(ts2); tableHost.addTab(ts3); tableHost.setOnTabChangedListener(this); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } @Override public void onTabChanged(String arg0) { // TODO Auto-generated method stub if (arg0.equals("tab1")) { Toast.makeText(this, "分页1", Toast.LENGTH_LONG).show(); } else if(arg0.equals("tab2")){ Toast.makeText(this, "分页2", Toast.LENGTH_LONG).show(); }else if(arg0.equals("tab3")){ Toast.makeText(this, "分页3", Toast.LENGTH_LONG).show(); } } }
View Code
关于不同Tab页面的View间如何通信后面再讲。
相关文章推荐
- android学习日记03--常用控件progressbar/seekbar
- android学习日记03--常用控件button/imagebutton
- android学习日记03--常用控件Dialog
- Android游戏开发系统控件-TabSpec与TabHost
- Android学习之Tab控件(使用TabHost和与Tab对应的Menu,动态更改Tabhost的Tab的背景图标,用到Ratingbar控件)
- Android游戏开发系统控件-TabSpec与TabHost
- android菜鸟学习笔记12----Android控件(一) 几个常用的简单控件
- android 自定义控件学习之三 控件布局常用知识总结
- 【Android学习日记】(五) 常用例子代码
- Android Material Design常用控件学习笔记
- Android常用控件学习
- android基础之TabSpec和TabHost
- Android学习分享-常见控件03-ImageView详解
- tab使用 TabActivity TabHost Tabspec常用方法
- Android Material Design控件学习(一)——TabLayout的用法
- Android-常用控件备忘(EditText、TabLayout)
- Android控件学习(四):ViewPager和TabHost结合Java代码
- Coolite Toolkit学习笔记八:常用控件TabPanel
- 五、Android学习第四天补充——Android的常用控件(转)
- Android常用控件学习(1)