2010-03-26 75 views
0

我在使TabActivity正常工作時遇到了一些困難。下面是類的實現:Android tabactivity問題

public class Profile extends TabActivity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    final TabHost tabHost = getTabHost(); 


    if (tabHost.isEnabled()) { 
    Log.e("profile", "enabled"); 
    } 


    tabHost.addTab(tabHost.newTabSpec(getString(R.string.friendReqs)) 
      .setIndicator("requests") 
      .setContent(new Intent(this, FriendRequests.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP))); 

    tabHost.addTab(tabHost.newTabSpec(getString(R.string.friends)) 
      .setIndicator("photo list") 
      .setContent(new Intent(this, Settings.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP))); 
    Log.e("profile", "add tabs"); 
    tabHost.invalidate(); 

} 
} 

的問題是,我所說的從我的主要活動這個類(這是一個MapActivity如果它的事項),當我做TabActivity不顯示。它註冊點擊選項菜單,它甚至開始意圖,但屏幕不會改變..它只停留在主要活動,我在日誌中看到主要活動恢復。我這樣稱呼它:

Intent p = new Intent(this,Profile.class); 
    p.putExtra(DBAdapter.KEY_USERID,userid); 
    startActivity(p); 

就像我說的...沒有錯誤(從標籤調用的類當然存在),只是沒有行動。我將一些日誌命令放入tabactivity的onCreate函數中(如您所見),並將它們全部寫入日誌中......我不知道我在這裏做錯了什麼。任何幫助?

回答

1

一些嘗試後...

我設置了第一個選項卡的視圖,而不是一個目的,它顯示的選項卡...我也可以選擇第二個選項卡。

明白了。問題是在第一個選項卡中調用該活動。如果沒有數據傳遞給它(捆綁),它會關閉。再次感謝您的幫助。

-1

我沒有在您的Activity中看到setContentView(),這是您需要的。

+0

對於您不需要的TabActivity。 – Pentium10 2010-03-26 17:23:35

+0

正是...擴展TabActivity應該提供自己的佈局 – Bostjan 2010-03-26 17:26:18

0

刪除

tabHost.invalidate(); 

您也可以減少

Intent.FLAG_ACTIVITY_CLEAR_TOP 

我沒有看到這樣的任何目的,因爲你需要看到活動反正當你點擊選項卡。

+0

可悲的是,這也沒有幫助。我在開始時沒有使用無效方法。我只是把它放在那裏,如果它會幫助任何... – Bostjan 2010-03-26 17:25:56

+0

有沒有什麼問題,我叫TabActivity的方式? – Bostjan 2010-03-26 17:26:41

+0

我今天爲我的TabActivity創建了一個相同的OnCreate,它看起來是一樣的,除了無效,我沒有標誌。它的工作。 – Pentium10 2010-03-26 17:28:05