如何在课堂上发起视图,然后在另一个活动中调用它?

时间:2012-02-09 16:45:26

标签: java android arrays class android-activity

基本上,我正在编写一个针对android的反转游戏,我有一个singlePlayerGame活动和一个Position类。我正在尝试使用一组imageView来设置电路板,这些视图充当代表棋盘方块的按钮。问题是当按钮在Position类中初始化时,它需要一个上下文,但不会让我有getApplicationContext()。

非常感谢任何帮助,提前谢谢!

3 个答案:

答案 0 :(得分:2)

为您的Position类创建一个接受Context对象的构造函数。创建Position类的实例时,请传入上下文。使用该上下文来制作按钮。请记住,如果您进行方向更改或下次活动重新开始时您必须将上下文更改为新上下文(无论如何都需要使用ImageViews)。

答案 1 :(得分:2)

如果我理解正确,你试图将Board单元格保存为Position类中的ImageViews / Buttons。要实例化它们,您需要通常在Activity中通过调用getApplicationContext()获得的Context。如果是这样,我觉得传递Context作为构造函数参数是最简单的方法,然后在位置类中构造图像/按钮时使用相同的方法。

答案 2 :(得分:1)

@ hazard1994:您可以将上下文传递给Position类构造函数,如下所示:

     class Position{
        Context myContext;

        //Constructor
        public Position( Context context){
          myContext = context;
        }

        //Then you can do anything with myContext variable
      }

当您的活动中的初始位置对象时,您可以将上下文传递给它。

     Position pos = new Position(getApplicationContext());

如果使用数组位置,则必须初始化所有对象:

     Position[][] pos = new Position[8][8];
     //initial for all objects in array
     for(int i = 0; i < 8; i++)
        for(int j = 0; j < 8; j++)
           pos[i][j] = new Position(getApplicationContext());