1. 程式人生 > >android tabHost佈局之一 繼承TabActivity並以activity佈局

android tabHost佈局之一 繼承TabActivity並以activity佈局

http://blog.csdn.net/chenzheng_java/article/details/6207227

檢視下最終效果圖:

再看下程式碼結構:

其中black.gif顧名思義就是一個黑背景圖片,grey.gif就是一張灰色的背景圖片

然後直接上程式碼:

ArtistActivity.java

  1. package cn.com.tagview;  
  2. import android.app.Activity;  
  3. import android.os.Bundle;  
  4. import android.widget.TextView;  
  5. publicclass ArtistActivity 
    extends Activity {  
  6.     @Override
  7.     protectedvoid onCreate(Bundle savedInstanceState) {  
  8.         super.onCreate(savedInstanceState);  
  9.         TextView textView = new TextView(this);  
  10.         // 該文件將會作為標籤的內容進行顯示
  11.         textView.setText("藝術內容");  
  12.         setContentView(textView);  
  13.     }  
  14. }  

MusicActivity.java

  1. package cn.com.tagview;  
  2. import android.app.Activity;  
  3. import android.os.Bundle;  
  4. import android.widget.TextView;  
  5. publicclass MusicActivity extends Activity {  
  6.     @Override
  7.     protectedvoid onCreate(Bundle savedInstanceState) {  
  8.         super.onCreate(savedInstanceState);  
  9.         TextView textView = new
     TextView(this);  
  10.         // 該文件將會作為標籤的內容進行顯示
  11.         textView.setText("音樂內容");  
  12.         setContentView(textView);  
  13.     }  
  14. }  

SportActivity.java

  1. package cn.com.tagview;  
  2. import android.app.Activity;  
  3. import android.os.Bundle;  
  4. import android.widget.TextView;  
  5. publicclass SportActivity extends Activity {  
  6.     @Override
  7.     protectedvoid onCreate(Bundle savedInstanceState) {  
  8.         super.onCreate(savedInstanceState);  
  9.         TextView textView = new TextView(this);  
  10.         // 該文件將會作為標籤的內容進行顯示
  11.         textView.setText("運動內容");  
  12.         setContentView(textView);  
  13.     }  
  14. }  

ArtistActivity.java  MusicActivity.java  SportActivity.java三個activity是用做標籤內容的activity。即當用戶點選相應的標籤時,下邊會顯示相應的activity內容。

ic_tab.xml程式碼

  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <selector
  3.   xmlns:android="http://schemas.android.com/apk/res/android"
  4.   >
  5.   <itemandroid:drawable="@drawable/grey"
  6.         android:state_selected="true"
  7.   ></item>
  8.   <itemandroid:drawable="@drawable/black"
  9.   ></item>
  10. </selector>

這裡一定要注意ic_tab.xml檔案的位置,是放在res/drawable資料夾下的。有些朋友說怎麼沒有這個資料夾啊,實際上大家看到了我將它放在了drawable-hdpi中了,實際上drawable-hdpi、drawable-ldpi、drawable-mdpi三個資料夾都屬於drawable資料夾的哦。該檔案它規定了,當標籤獲得焦點和失去焦點時,標籤上顯示什麼圖片。

例如本例中,就是當state_selected="true"(當標籤被選中時),顯示@drawable/grey指定的資源圖片。當未被選中時,顯示@drawable/black指定的資源圖片。

tagView.java程式碼:

  1. package cn.com.tagview;  
  2. import android.app.TabActivity;  
  3. import android.content.Intent;  
  4. import android.content.res.Resources;  
  5. import android.os.Bundle;  
  6. import android.widget.TabHost;  
  7. /** 
  8.  * @author chenzheng_Java 
  9.  * @description 注意,該類一定要繼承TabActivity 
  10.  */
  11. publicclass TagView extends TabActivity {  
  12.     @Override
  13.     publicvoid onCreate(Bundle savedInstanceState) {  
  14.         super.onCreate(savedInstanceState);  
  15.         // setContentView(R.layout.main);
  16.         // android程式碼中訪問application資源的一個類
  17.         Resources resources = getResources();  
  18.         // 獲取當前activity的標籤,該方法的實現中已經執行了setContentView(com.android.internal.R.layout.tab_content);
  19.         TabHost tabHost = getTabHost();  
  20.         // 每一個標籤項
  21.         TabHost.TabSpec spec;  
  22.         // 宣告一個意圖,該意圖告訴我們,下一個跳轉到的activity是ArtistActivity。
  23.         Intent intent = new Intent(this, ArtistActivity.class);  
  24.         /** 
  25.          * tabHost.newTabSpec("artist")建立一個標籤項,其中artist為它的標籤識別符號,相當於jsp頁面標籤的name屬性 
  26.          * setIndicator("藝術標籤",resources.getDrawable(R.drawable.ic_tab))設定標籤顯示文字以及標籤上的圖示(該圖示並不是一個圖片,而是一個xml檔案哦) 
  27.          * setContent(intent)為當前標籤指定一個意圖 
  28.          * tabHost.addTab(spec); 將標籤項新增到標籤中 
  29.          */
  30.         spec = tabHost.newTabSpec("artist").setIndicator("藝術標籤",  
  31.                 resources.getDrawable(R.drawable.ic_tab)).setContent(intent);  
  32.         tabHost.addTab(spec);  
  33.         Intent intent2 = new Intent(this, MusicActivity.class);  
  34.         spec = tabHost.newTabSpec("music").setIndicator("音樂標籤",  
  35.                 resources.getDrawable(R.drawable.ic_tab)).setContent(intent2);  
  36.         tabHost.addTab(spec);  
  37.         Intent intent3 = new Intent(this, SportActivity.class);  
  38.         spec = tabHost.newTabSpec("sport").setIndicator("體育標籤",  
  39.                 resources.getDrawable(R.drawable.ic_tab)).setContent(intent3);  
  40.         tabHost.addTab(spec);  
  41.         // tabHost.setCurrentTabByTag("music");設定第一次開啟時預設顯示的標籤,該引數與tabHost.newTabSpec("music")的引數相同
  42.         tabHost.setCurrentTab(1);//設定第一次開啟時預設顯示的標籤,引數代表其新增到標籤中的順序,位置是從0開始的哦。
  43.     }  
  44. }  

AndroidManifest.xml

  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <manifestxmlns:android="http://schemas.android.com/apk/res/android"
  3.       package="cn.com.tagview"
  4.       android:versionCode="1"
  5.       android:versionName="1.0">
  6.     <uses-sdkandroid:minSdkVersion="8"/>
  7.     <applicationandroid:icon="@drawable/icon"android:label="@string/app_name">
  8.        <!-- android:theme="@android:style/Theme.NoTitleBar" 的意思是將系統預設的tag標籤去掉,為咱們自己的標籤空出位置-->
  9.         <activityandroid:name=".TagView"
  10.                   android:label="@string/app_name"
  11.                   android:theme="@android:style/Theme.NoTitleBar"
  12.                   >
  13.             <intent-filter>
  14.                 <actionandroid:name="android.intent.action.MAIN"/>
  15.                 <categoryandroid:name="android.intent.category.LAUNCHER"/>
  16.             </intent-filter>
  17.         </activity>
  18.         <!-- 在主配置檔案中宣告用於標籤切換的3個activity,記住此處一定要宣告,否則會出錯  
  19.             android:name="ArtistActivity"裡面ArtistActivity前面是否有.都可以,你只需要保證該類是在manifest標籤下package屬性的包中即可。  
  20.          -->
  21.         <activityandroid:name="ArtistActivity"android:label

    相關推薦

    android tabHost佈局之一 繼承TabActivityactivity佈局

    http://blog.csdn.net/chenzheng_java/article/details/6207227 先 檢視下最終效果圖: 再看下程式碼結構: 其中black.gif顧名思義就是一個黑背景圖片,grey.gif就是一張灰色的背景圖片

    android tabHost佈局之一繼承TabActivity佈局檔案進行佈局

    上圖為最終效果圖 程式碼結構圖   main.xml <?xmlversion="1.0"encoding="utf-8"?> <LinearLayoutxmlns:android="http://schemas.android.com

    Android CoordinatorLayout實現多列表切換和頭佈局聯動;

    注意:不是雙列表聯動,是多列表和頭佈局聯動; 大概就是和餓了麼店鋪首頁類似的佈局框架吧,頭佈局顯示時,列表RecyclerView或ScrollView和頭佈局一起滾動,頭佈局完全隱藏後列表再去滾動,可以多個列表切換; 有空再上圖看效果吧; 1、主要的佈局檔案,註釋寫的很清楚; &l

    Android 自定義Dialog類,Activity中實現按鈕監聽。

    實際開發中,經常會用到Dialog,比如退出時候會彈出是否退出,或者還有一些編輯框也會用Dialog實現,效果圖如下: 開發中遇到的問題無非在於如果在Activity中監聽這個Dialog中實現的按鈕,Dialog類如下,在MyDialog這個類中實現了一個LeaveMyDialogLi

    Android自定義AlertDialog對話方塊回傳Activity引數

    需求 開發過程總會想要自己設計的對話方塊,有時候還需要在activity獲取對話方塊的一些操作結果。 思路 1.自定義對話方塊,並繼承AlertDialog 2.在自定義對話方塊中,定義一個介面,並宣告一個方法,將操作結果作為方法引數 3.在act

    Android從相簿中選擇圖片作為Activity的背景(主題)

    實現邏輯: 首先獲取本地相簿圖片的絕對路徑URL,儲存; 通過圖片的絕對路徑轉成bitmap; 設背景,結束。 許可權: <uses-permission android:

    Android自定義View的三種方式:繼承佈局繼承原生控制元件,繼承View

     自定義View非常的常用,也是Android開發的一項基本技能,自定義View有三種方式:繼承佈局,繼承原生控制元件,繼承View。一、繼承佈局先看效果圖:程式碼實現:1.在layout資料夾中建立佈局title_view.xml,這一步根據自己需要寫,本例中的佈局如下:佈

    定義點類,點類為基類,派生出直線類,從基類中繼承的點的資訊表示直線的中點。

    #include<iostream> #include<cmath> using namespace std; class Point //定義座標點類 { public: //定義必要的建構函式 Point(double a=0,d

    android之tableLayout佈局之一

      // wc和fp兩個屬性,是佈局用的,wc表示wrap_content剛好包含內容,FP則是填充滿父容器    private final int WC = ViewGroup.LayoutParams.WRAP_CONTENT;        private final int FP = ViewGro

    Android 之自定義佈局繼承控制元件)

    就是繼承已有的控制元件,建立新控制元件,保留繼承的父控制元件的特性,並且還可以引入新特性。下面就以支援橫向滑動刪除列表項的自定義ListView的實現來介紹。 1、建立刪除按鈕佈局delete_btn.xml,這個佈局是在橫向滑動列表項後顯示的: <?xml version="1.0" en

    Android實戰技巧之一:文字與佈局(字串變數在資源裡替換)

    //別看這個標題挺大,其實這次要說的只是3個小技巧。 //2014.11.7 update 1、字串資源裡變數替換 工作中是拒絕硬編碼的,Android裡會把一些字串等放在xml中當做資源使用,如專案中values下的strings.xml列出了app_name.

    Android實戰技巧之一 文字與佈局

                    //別看這個標題挺大,其實這次要說的只是3個小技巧。//2014.11.7 update1、字串資源裡變數替換工作中是拒絕硬編碼的,android裡會把一些字串等放在xml中當做資源使用,如專案中values下的strings.xml列出了app_name.有些情況是這樣的,程

    Android調用相機實現拍照裁剪圖片,調用手機中的相冊圖片裁剪圖片

    != findview create 圖片剪裁 顯示 parent 學會 true mfile 在 Android應用中,非常多時候我們須要實現上傳圖片,或者直接調用手機上的拍照功能拍照處理然後直接顯示並上傳功能,以下將講述調用相機拍照處理圖片然後顯示和調用手機相冊中的

    python之pygal:擲一個骰子統計次數直方圖形式顯示

    統計 tle bar any http append 一個 die() title 源碼如下: 1 # pygal包:生成可縮放的矢量圖形文件,可自適應不同尺寸的屏幕顯示 2 # 安裝:python -m pip intall pygal-2.4.0-py2.py3-

    Android 簡單案例:繼承BaseAdapter實現Adapter

    for ack import apt ret bsp position hang layout import android.view.LayoutInflater; import android.view.View; import android.view.ViewGr

    Mysql數據庫一個表字段中存了id,逗號分隔,id對應的詳細信息在另一個表中

    l數據庫 cat sel left 現在 籃球 sql group 查詢 有兩張表, 一張為愛好表b表 一張為用戶表 u表 u表 id 名稱 愛好Id 1 張三 1,2,3,4 2 李四 2,5 b表 id 名稱 1 打乒乓

    把一行數字(readline)讀進List科學計數法輸出(write)到文件

    readline 而且 write 每一個 inf log print clas split() 主要過程是讀取的時候是一行字符串,需要Strip去除空格等,然後split變成一個List。 註意這時候數據結構是List但是每一個元素是Str性質的。 所以需要map(flo

    查找列表中的元素,移動空格 查找a或A 為開頭 c 結尾的元素

    dsw sta for 查找 lec 列表 new 空格 api li = [‘alec‘,‘ aric‘,‘Alex‘,‘Tony‘,‘rain‘]tu = (‘alec‘,‘ aric‘,‘Alex‘,‘Tony‘,‘rain‘)dic = { ‘k1‘:‘ale

    關於linux下的date日期,日期給文件命名

    文件名 lin 有時 腳本 inux 防止 img 完整 日期 在linux的終端中,我們輸入date後會有以下顯示: 然後博主也擴展了一下date的基礎用法: date + “%-”: %y 輸出年份的後2位;%Y 輸出完整年份 %m 輸出月份;%d 輸出日期(天) %

    python獲取天氣狀況郵件的形式發到目的郵箱

    ucc cto size 頻繁 red http borde ble 星期四 python爬取天氣情況 下面為示例代碼: from urllib.request import urlopen from bs4 import BeautifulSoup fr