2011-09-03 61 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