Как инициировать представление в классе, а затем вызвать его в другой деятельности? - PullRequest
0 голосов
/ 09 февраля 2012

По сути, я программирую реверси-игру для Android, и у меня есть действие singlePlayerGame и класс Position.Я пытаюсь настроить доску, используя массив imageViews, которые действуют как кнопки, которые представляют квадраты шахматной доски.Проблема заключается в том, что когда кнопка инициализируется в классе Position, ей нужен контекст, но я не могу получить getApplicationContext ().

Любая помощь очень приветствуется, заранее спасибо!

Ответы [ 3 ]

2 голосов
/ 09 февраля 2012

Если я правильно понял, вы пытаетесь удерживать ячейки Совета как ImageViews / Buttons в вашем классе Position.И для их создания вам нужен Context, который обычно в Activity мы получаем, вызывая getApplicationContext ().Если это так, я чувствую, что передать Context как параметр конструктора - это самый простой способ, а затем использовать его при конструировании Image / Buttons в Position Class.

2 голосов
/ 09 февраля 2012

Создайте конструктор для вашего класса Position, который принимает объект Context.Когда вы создаете экземпляр класса Position, переходите в контекст.Используйте этот контекст, чтобы сделать ваши кнопки.Просто имейте в виду, что вы должны изменить контекст на новый, если вы изменяете ориентацию или если действие возобновляется в следующий раз (вам все равно нужно сделать это с ImageViews).

1 голос
/ 09 февраля 2012

@ danger1994: вы можете передать контекст конструктору класса Position следующим образом:

     class Position{
        Context myContext;

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

        //Then you can do anything with myContext variable
      }

Когда исходный объект Position в вашей деятельности, вы можете передать ему контекст.

     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());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...