Какой метод называется моментом, когда деятельность полностью изложена и готова для взаимодействия с пользователем? - программирование
Подтвердить что ты не робот

Какой метод называется моментом, когда деятельность полностью изложена и готова для взаимодействия с пользователем?

Мне нужен способ запускать код в тот момент, когда активность полностью загружена, выложена, нарисована и готова для пользовательских сенсорных элементов управления. Какой метод/слушатель делает это?

4b9b3361

Ответ 1

Commonsware прав, не объясняя, что вы пытаетесь сделать и почему, невозможно ответить на ваш вопрос, и я подозреваю, что с деталями вы, вероятно, думаете об этом неправильно.

Тем не менее, у меня есть код, в котором мне нужно было сделать очень фанк-макет после того, как все было измерено.

Я мог бы расширить каждый из классов вида в макете и переопределить onMeasure(), но это было бы большой работой. Итак, я закончил это. Не очень, но он работает.

mainMenuLayout - это макет, в котором мне нужно было напугать. Обратный вызов onGlobalLayout вызывается, когда макет завершает рисование. Utils.setTitleText() - это место, где происходит funkiness, и когда я передаю mainMenuLayout, он имеет доступ к положению и размеру всех дочерних представлений.

mainMenuLayout.getViewTreeObserver().addOnGlobalLayoutListener(
            new ViewTreeObserver.OnGlobalLayoutListener() {

                @Override
                public void onGlobalLayout() {

                    // only want to do this once
                    mainMenuLayout.getViewTreeObserver().removeGlobalOnLayoutListener(this);

                    // set the menu title, the empty string check prevents sub-classes
                    // from blanking out the title - which they shouldn't but belt and braces!
                    if (!titleText.equals("")){
                        Utils.setTitleText(_context,mainMenuLayout,titleText);
                    }

                }
            });

Ответ 2

Я обнаружил, что если я отправлю сообщение Runnable в очередь сообщений, он будет запущен после того, как будет создан контент для этой операции. Например, если я хочу ширину и высоту View, я бы сделал следующее:

view.post( new Runnable() {

    @Override
    public void run() {

        int width = view.getWidth(); // will be non-zero
        int height = view.getHeight(); // will be non-zero
    }
} );

Я нашел успех с этим в любое время после вызова setContentView().

Ответ 3

метод onRestoreInstanceState - это тот, который вызван для восстановления состояния пользовательского интерфейса, который вызывается после onResume. Я думаю, вы можете использовать этот метод onRestoreInstanceState.. и поместить свой код после восстановления пользовательского интерфейса состояние из сохраненногоInstanceState...

Ответ 4

Попробуйте onPostResume(), вызванный после onResume(), в этот момент экземпляр Activity должен быть видимым, и отображаются все основные Представления. Во многих ситуациях это верно, когда вызывается onResume().

Ответ 5

Может быть, это немного помогает:

@Override
public void onAttachedToWindow(){}