2011-09-03 110 views
1

我正在(嘗試)製作一個簡單的桌面遊戲。它的用戶界面應該非常簡單,頂層組件代表棋盤本身的圖形,底部還有一些TextView提供了一些相關信息(棋盤上的令牌數量,當前牌手數量......)。Android/Java(?) - 從小孩訪問父母

我有一個Activity,具有:

  • Game構件,它處理所有的邏輯。
  • A BoardView延伸View,繪製遊戲板,它處理交互。
  • TextView這應該顯示一些額外的互動。

所以BoardViewTextView情況下,需要從他們的兄弟姐妹Game訪問信息。我該如何訪問它?

回答

4

您可以構建兩個類BoardViewTextView具有相同Game例如,

Game game = new Game(); 
BoardView board = new BoardView(game); 
TextView text = new TextView(game); 

或使Game持有自己的實例是獨生子。

public class Game{ 

private Game game; 
//private constructor 
private Game(){};  

//synchronised method to create a game instance 
private synchronized static void createInstance() { 
    if (game == null) game = new Game(); 
} 


public static void getInstance(){ 
    if(game==null){ 
    createInstance(); 
    } 
    return game; 
} 

然後你就可以通過調用上述

Game game = Game.getInstance(); 
1

本傑明的回答讓這兩類同一遊戲實例是你所需要的。 您可以嘗試使用建議的MVC模式執行here

+0

非常感謝。正如你可能猜到的,我不是貿易程序員,而是愛好。我想這些「單身」和「MVC」模式是我應該熟悉的重要概念。 – pouzzler