如何在Android应用程序启动时加载弹出窗口?的onCreate()?

时间:2012-01-28 09:04:33

标签: android popup window startup

我是android开发的新手,我想问一下如何在android应用程序启动时加载弹出窗口?的onCreate()?

我见过很多例子,但没有人满足我的需要。有没有办法在应用程序启动时加载弹出窗口?

谢谢

2 个答案:

答案 0 :(得分:6)

执行此操作的最佳位置是您的活动的onStart方法。基本上,我们需要:

  • 获取一个新的Dialog,并指定所需的XML布局。
  • 填写任何其他选项,包括当用户点击对话框上的按钮时运行的代码(在这种情况下,只需关闭对话框)。
  • 显示对话框。

这是一个简单的例子,但有很多选项可供选择。有关详细信息,请参阅http://developer.android.com/reference/android/app/Dialog.html

<强> RES /布局/ 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 :(得分:1)

您想要创建一个新活动并通过Intent启动它。基本上,如果你想让它“感觉”像一个弹出窗口,你只需创建一个不占用屏幕宽度/高度100%的布局。

以下是如何做到这一点:

  1. 创建XML布局并将其放在res / layout / PopupActivity.xml
  2. 创建一个新活动PopupActivity.java。
  3. 将新活动添加到Android清单文件中。
  4. 通过主要活动的onResume方法通过Intent启动活动:startActivity(new Intent(this, PopupActivity.class));
  5. 如果要在用户完成弹出活动时收到通知,可以使用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