Вызов onCreateOptionsMenu () из нескольких представлений - PullRequest
1 голос
/ 02 сентября 2011

Это может быть из-за моего отсутствия полного понимания того, как работает Java.Все еще учимся!

Допустим, у нас есть действие с кодом onCreate.

public class GameActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(new GameMainView(this));
    }
}

Теперь у нас есть наше представление.У меня вопрос такой.В классе GameActivity и классе GameMainView есть подпрограммы, которые я хочу вызвать с помощью ответов onCreateOptionsMenu ().Как бы я получил доступ к обоим этим классам?Я знаю, что мог бы создать абстрактный класс специально для onCreateOptionsMenu () и сделать так, чтобы GameActivity и GameMainView переопределяли его, чтобы выполнить то, что им нужно.Это единственный вариант?OnCreateOptionsMenu () вызывается только один раз?И если да, то где?Если я переопределю это повсеместно, все они будут казнены?

Ответы [ 2 ]

1 голос
/ 02 сентября 2011

Если вы напишите свою активность так:

public class GameActivity extends Activity {
    private GameMainView gameMainView;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        gameMainView = new GameMainView(this);
        setContentView(gameMainView);
    }
}

Затем в вашем методе, который обрабатывает выбранную опцию меню, вы можете иметь дело с выбором в упражнении и перенаправить его в представление.

0 голосов
/ 02 сентября 2011

Вы можете переопределить его только в своем классе активности.Сохраняйте ссылку на GameMainView в действии и вызывайте методы в представлении при нажатии кнопок.

...