我正在(尝试)制作一个简单的棋盘游戏。它的 UI 应该非常简单,一个顶部组件代表棋盘本身的绘图,在底部,一些 TextView
提供一些相关信息(回合,棋盘上的 token 数量,当前玩家, ...).
我有一个Activity
,其中:
Game
成员,处理所有逻辑。BoardView
扩展View
,用于绘制处理交互的游戏板。TextView
应显示一些额外的交互。
因此 BoardView
和 TextView
实例需要从它们的兄弟 Game
访问信息。我该如何访问它?
最佳答案
您可以使用相同的 Game
实例构造 BoardView
和 TextView
类,
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();
关于java - Android/Java(?) - 从子访问父,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7293736/