Как загрузить всплывающее окно при запуске приложения для Android? OnCreate ()? - PullRequest
1 голос
/ 28 января 2012

Я новичок в разработке Android и хочу спросить, как загрузить всплывающее окно при запуске приложения Android? OnCreate ()

Я видел много примеров, но никто не покрывал мои потребности. Есть ли способ загрузить всплывающее окно при запуске приложения?

Спасибо

Ответы [ 2 ]

6 голосов
/ 28 января 2012

Лучшее место для этого - метод onStart вашей Деятельности.По сути, нам необходимо:

  • Получить новый диалог и указать желаемый макет XML.
  • Заполнить любые другие параметры, включая код, который будет выполняться, когда пользователь нажимает накнопки в диалоговом окне (в данном случае, просто закрывая диалоговое окно).
  • Показать диалоговое окно.

Вот простой пример, но доступно множество параметров.Для получения дополнительной информации см. http://developer.android.com/reference/android/app/Dialog.html.

res / layout / dialog.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:layout_width="wrap_content" 
                android:layout_height="wrap_content">
  <TextView android:text="hello, world" 
            android:id="@+id/TextView01"
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content"/>
   <Button android:id="@+id/Button01" 
           android:layout_below="@id/TextView01"
           android:layout_width="wrap_content" 
           android:layout_height="wrap_content"
           android:layout_centerHorizontal="true" 
           android:text="OK" />
</RelativeLayout>

В вашей деятельности

@Override
protected void onStart()
{
    super.onStart();

    final Dialog dialog = new Dialog(this);
    dialog.setContentView(R.layout.dialog);
    dialog.setTitle("Dialog box");

    Button button = (Button) dialog.findViewById(R.id.Button01);
    button.setOnClickListener(new OnClickListener() {  
        @Override  
        public void onClick(View view) {  
            dialog.dismiss();            
        }  
    });

    dialog.show();
}
1 голос
/ 28 января 2012

Вы хотите создать новое действие и запустить его через намерение.По сути, если вы хотите, чтобы он «ощущался» как всплывающее окно, вы просто создаете макет, который не принимает 100% ширины / высоты экрана.

Вот как вы можете это сделать:

  1. Создайте макет XML и поместите его в res / layout / PopupActivity.xml
  2. Создайте новое действие, PopupActivity.java.
  3. Добавьте новое действие в файл манифеста Android.
  4. Запустите действие через Intent из метода onResume вашего основного действия: startActivity(new Intent(this, PopupActivity.class));

Если вы хотите получать уведомление, когда пользователь заканчивает всплывающее действие, выможно запустить его с помощью startActivityForResult () вместо просто startActivity ().Это позволяет вам получить обратный вызов, когда пользователь завершил действие.

Я рекомендую использовать onResume () для запуска, потому что он всегда вызывается, когда пользователь возвращается к вашему действию, либо в первый раз, либо в последующий раз..

Вам нужно будет сохранить значение, представляющее состояние вашего приложения, чтобы решить, когда / если вы будете отображать вашу PopupActivity.Android будет периодически убивать ваше приложение по мере необходимости, поэтому, если вы не реализуете какую-то постоянность, то ваша PopupActivity всегда будет отображаться, когда пользователь заходит в приложение.Я бы начал реализовывать onSaveInstanceState () и onRestoreInstanceState () в вашей основной деятельности.

Простой способ узнать, показывать ли PopupActivity или нет, это просто иметь переменную, например popupShown, установить еепо умолчанию false и true после показа всплывающего окна.Перед запуском всплывающего окна проверьте, действительно ли popupShown.Сохранение состояния приложения, как я упоминал выше, гарантирует, что вы будете показывать всплывающее окно только при необходимости.

Очень важно понимать, как Android управляет жизненным циклом действий, иначе вы будете тратить много времени.Время удивления, почему ваше приложение ведет себя странно.Мое первое приложение для Android было очень непригодным для использования, потому что я только погрузился и не полностью понял жизненный цикл.

Android Lifecycle

Вам следует прочитать это, если вы не совсем уверены вбит жизненного цикла: http://developer.android.com/reference/android/app/Activity.html

...