2011-03-15 25 views
0

我正在開發棋盤遊戲的「記分員應用程序」。遊戲可以容納2至8名玩家。所以我創建了一個具有8個相同活動選項卡的Tabhost(player.class)。它的工作原理:)如何訪問具有相同Activity的多個選項卡的tabhost?

private void newTab(int i) { 

    Intent intent = new Intent(this, Player.class);  

    TabSpec spec = mTabHost.newTabSpec("Player" + i); 

    spec.setIndicator("Player " + i); 

    spec.setContent(intent); 

    mTabHost.addTab(spec); 

} 

但問題來了,如果我想重新設置每個人的分數。所以我用onCreateOptionsMenu()創建了菜單「Reset Scores」。但我不知道如何訪問選項卡以將各個分數設置爲'0'。

我曾嘗試:

Player.setScores(0); //但它只會改變最後創建的選項卡的分數(可預測)

有什麼建議嗎?

在此先感謝。

回答

2

在您的玩家活動中,您可以致電getParent()來查看TabActivity。 然後您只需撥打getTabHost()即可。這樣您就可以完全訪問TabActivity的每個子活動。

+0

謝謝。我做了這個字符串tabTag = tabHost.getCurrentTabTag(); Activity activity = getLocalActivityManager()。getActivity(tabTag); 但我無法從活動中訪問函數「setScores」。 – 2011-03-15 11:33:17

+0

如何從一個類的活動訪問一個函數? – 2011-03-15 11:45:32

+0

要調用您的「setScores」方法,您必須像這樣投射您的活動:((Player)getLocalActivityManager()。getActivity(tabTag))。setScores(120); – Benjamin 2011-03-20 20:43:07

相關問題