Ссылка "это" в конструкторе-члене - PullRequest
3 голосов
/ 17 февраля 2012
public abstract class AndroidTextAdvGame extends Activity implements Game {

Game game;

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    game = this;

    rightLinksListener = new View.OnClickListener() {           
        @Override
        public void onClick(View v) {
                    setScreen( new BookQuestGameScreen(game) );
        }

    };
}

Могу ли я в любом случае сослаться на 'this' (класс, который я определил)

в новом View.OnClickListener?

Текущее решение - это созданный мной участник игрыи присвоение game = this в onCreate, а затем использование игры в новом View.OnClickListener

Ответы [ 2 ]

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

Если ваш класс, который вы определили, назывался AndroidTextAdvGame , то вы бы ссылались на его "this", используя

AndroidTextAdvGame.this
1 голос
/ 17 февраля 2012

Да: вы можете ссылаться на экземпляр внешнего класса как AndroidTextAdvGame.this.Например:

new BookQuestGameScreen(AndroidTextAdvGame.this)

(Сначала я немного странно выгляжу, признаюсь, но вы к этому привыкли.)

...