Android TabWidget切换卡的实现应用

2016-02-19 10:24 46 1 收藏

每个人都希望每天都是开心的,不要因为一些琐事扰乱了心情还,闲暇的时间怎么打发,关注图老师可以让你学习更多的好东西,下面为大家推荐Android TabWidget切换卡的实现应用,赶紧看过来吧!

【 tulaoshi.com - 编程语言 】

TabWidget类似于Android 中查看电话薄的界面,通过多个标签切换显示不同内容。要实现这一效果,首先要了解TabHost,它是一个用来存放多个Tab标签的容器。每一个Tab都可以对应自己的布局,比如,电话薄中的Tab布局就是一个List的线性布局了。 
要使用TabHost,首先需要通过getTabHost方法来获取TabHost的对象,然后通过addTab方法来向TabHost中添加 Tab。当然每个Tab在切换时都会产生一个事件,要捕捉这个事件需要设置TabActivity的事件监听 setOnTabChangedListener。

1、布局文件

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"

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

    TabWidget
      android:id="@android:id/tabs"
      android:layout_width="fill_parent"
      android:layout_height="wrap_content" /

    FrameLayout
      android:id="@android:id/tabcontent"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent"

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

      TextView
        android:id="@+id/textview1"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:text="Linux"
        android:textColor="#FF0000" /

      TextView
        android:id="@+id/textview2"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:text="MAC"
        android:textColor="#385E0F" /

      TextView
        android:id="@+id/textview3"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:text="Windows"
        android:textColor="#1E90FF" /
    /FrameLayout
  /LinearLayout

/TabHost

2、修改MainActivity,注意是继承自TabActivity

public class MainActivity extends TabActivity { private TabHost tabHost; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tabHost = getTabHost(); addTab();// 添加标签 // 设置TabHost背景颜色 tabHost.setBackgroundColor(Color.argb(150, 20, 80, 150)); // 设置TabHost背景图片资源 tabHost.setBackgroundResource(R.drawable.ic_launcher); // 设置当前显示哪一个标签 我的理解就是当你第一次启动程序默认显示那个标签 这里是指定的选项卡的ID从0开始 tabHost.setCurrentTab(0); // 标签切换事件处理,setOnTabChangedListener 注意是标签切换事件不是点击事件,而是从一个标签切换到另外一个标签会触发的事件 tabHost.setOnTabChangedListener(new OnTabChangeListener() {  @Override  public void onTabChanged(String tabId) {  AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);  Dialog dia;  builder.setTitle("提示");  builder.setMessage("当前选中了" + tabId + "标签");  builder.setPositiveButton("确定", new OnClickListener() {   @Override   public void onClick(DialogInterface dialog, int which) {   dialog.cancel();   }  });  dia = builder.create();  dia.show();  } }); } // 为TabHost添加标签 新建一个newTabSped(new TabSpec) 设置其标签和图标(setIndicator)、设置内容(setContent) // TabSpec是TabHost的内部类 TabHost对象的 newTabSpec()方法返回一个TabSpec对象 // 源码里边是这么写的 public TabSpec newTabSpec(String tag) // { return new TabSpec(tag); } private void addTab() { tabHost.addTab(tabHost  .newTabSpec("tab1")  .setIndicator("TAB1",   getResources().getDrawable(R.drawable.ic_launcher))// setIndicator()此方法用来设置标签和图表  .setContent(R.id.textview1)); // 指定内容为一个TextView ---public TabHost.TabSpec setContent(int viewId) 此方法需要一个 viewId 作为参数 tabHost.addTab(tabHost  .newTabSpec("tab2")  .setIndicator("TAB2",   getResources().getDrawable(R.drawable.ic_launcher))  .setContent(R.id.textview2)); tabHost.addTab(tabHost  .newTabSpec("tab3")  .setIndicator("TAB3",   getResources().getDrawable(R.drawable.ic_launcher))  .setContent(R.id.textview3)); }}

 3、运行程序:如下!

来源:https://www.tulaoshi.com/n/20160219/1594486.html

延伸阅读
在最近写的一个Android中需要请求web服务器中的数据,有一个登录Activity,登录后会到MainActivity,这中间登录和MainActivity都需要请求php的jsonapi,所以要在网络请求中保持session的,研究了好半天才搞定。其实sesion在浏览器和web服务器直接是通过一个叫做name为sessionid的cookie来传递的,所以只要在每次数据请求时保持sessionid是同一个...
为了引入这个概率 首先从需求说起 即:现有某Activity专门用于手机属性设置 那么应该如何做呢? 根据已学知识 很快一个念头闪过 即:Activity + Preference 组合 前者用于界面构建 后者用于设置数据存放 其实 这是正确的 但是 这会比较繁琐 因为 每个设置选项 都要建立与其对应的Preference 所以 现在有更好的选择了 那就是本文的主角:Prefer...
标签: Android
如何避免恶意Android应用   腾讯数码讯 Android权限对于开发者来说既是最好的朋友,也是最坏的敌人。即便是优秀且有信誉的应用开发人员和公司,也需要深度的Android权限以保证基础性的功能。另一方面,虽然Android恶意应用在安装之前会列出一长串的权限要求,很少有人谨慎的将它读完,以至于让恶意程序顺利的在我们自己的授权下进...
代码如下:  public void payment() {   SQLiteDatabase db = dbOpenHelper.getReadableDatabase();   db.beginTransaction();//开始事务   try {    db.execSQL("update person set amount=amount-10 where personid=2");    db.execSQL("update person set amount=amount+...
标签: Web开发
样式与数据分离所带来的不只是符合标准这样的简单,样式既然与数据分离那么样式的切换则变得理所当然的了!但是网上这样的中文教程实在是太少了!收集了一部分中外网站已经实现的技术资料整理出来供网友参考。 首先要具备不同内容的CSS文件(最好每个文件代表一种样式,或是代表需要作出变动的部分)。这里以三个为例: 第一个...

经验教程

74

收藏

63
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部