程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> tabactivity-如何修改在TabActivity裡一個Tab的標題

tabactivity-如何修改在TabActivity裡一個Tab的標題

編輯:編程綜合問答
如何修改在TabActivity裡一個Tab的標題

我在 TabActivity 底部設置了 tabs,由下面的幾個不同的 activity 組成

public class HomeScreen extends TabActivity {
private TabHost mTabHost;
@Override
public void onCreate(Bundle icicle) {
    super.onCreate(icicle);

    try{
    setContentView(R.layout.hometabs);


    Resources res = getResources(); // Resource object to get Drawables
    mTabHost = getTabHost();  // The activity TabHost
    TabHost.TabSpec spec;  // Reusable TabSpec for each tab
    Intent intent;  // Reusable Intent for each tab
    String strName;
    // Create an Intent to launch an Activity for the tab (to be reused)
    strName=Central.Res.getString(R.string.tab_Books);
    intent = new Intent().setClass(this, BookList.class);
    spec = mTabHost.newTabSpec(strName).setIndicator("",
                      res.getDrawable(R.drawable.ic_menu_database))
                  .setContent(intent);
    mTabHost.addTab(spec);


    // Create an Intent to launch an Activity for the tab (to be reused)
    strName=Central.Res.getString(R.string.tab_Questions);
    intent = new Intent().setClass(this, QuestionsList.class);
    intent.putExtra("NoteType",  UserDataSQLHelper.NOTE_TYPE_QUEST );
    spec = mTabHost.newTabSpec(strName).setIndicator("",
                      res.getDrawable(R.drawable.ic_menu_dialog))
                  .setContent(intent);
    mTabHost.addTab(spec);

問題是對於每一個tab都有同樣的窗口標題。窗口標題顯示的是應用程序的名字,我想要把窗口標題名字換成tab的名字。我試著通過調用相應的onCreate()方法裡面的setTitle("MyTitle");這個方法來實現,並且重寫TabActivity onChildTitleChanged:

public void onChildTitleChanged(Activity childActivity, CharSequence title)
        {
             View tabView = mTabHost.getCurrentTabView();
             int idTitle = android.R.id.title;
             TextView tvTitle = (TextView) tabView.findViewById(idTitle);
             tvTitle.setText(title);
        }

但是結果不是這樣的,它在 Tab 圖標下面給 Tab 設置了 text。
請大家幫忙指點。

最佳回答:


試一下這段代碼:

tabHost.setOnTabChangedListener(new OnTabChangeListener() {         
            @Override
            public void onTabChanged(String tabId) {                
                Log.i("Tab id", ""+tabId);
                setTitle(tabId);
            }
        });    
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved