【问题标题】:How to load popup window on android application startup? onCreate()?如何在android应用程序启动时加载弹出窗口?创建()?
【发布时间】:2012-01-28 09:04:32
【问题描述】:

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

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

谢谢

【问题讨论】:

  • 你的意思是说应用程序启动时的警告对话框吗?
  • 你需要在布局加载后在onStart上进行。
  • 您可以将您的活动主题设置为对话框......

标签: android popup window startup


【解决方案1】:

执行此操作的最佳位置是在 Activity 的 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();
}

【讨论】:

  • 我不是指警报对话框,而是将 xml 布局显示为弹出窗口
  • 在“button.setOnClickListener(new OnClickListener()”中我疯了,我需要什么导入才能让 OnClickListener() 编译?
【解决方案2】:

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

您可以这样做:

  1. 创建一个 XML 布局并将其放在 res/layout/PopupActivity.xml 中
  2. 创建一个新的活动,PopupActivity.java。
  3. 将新活动添加到您的 Android 清单文件中。
  4. 通过主要活动的 onResume 方法中的 Intent 启动活动:startActivity(new Intent(this, PopupActivity.class));

如果您想在用户完成弹出活动时收到通知,您可以使用 startActivityForResult() 来启动它,而不仅仅是 startActivity()。这允许您在用户完成活动时收到回调。

我建议使用 onResume() 来启动,因为它总是在用户返回到您的活动时调用,无论是第一次还是以后。

您需要保留一个表示应用程序状态的值,以便决定何时/是否显示您的 PopupActivity。 Android 会根据需要定期关闭您的应用程序,因此,如果您不实现某种持久性,那么当用户访问应用程序时,您的 PopupActivity 将始终出现。我将开始在您的主要活动中实现 onSaveInstanceState() 和 onRestoreInstanceState()。

判断是否显示PopupActivity 的一个简单方法是只设置一个变量,例如popupShown 默认设置为false,显示弹出窗口后设置为true。在启动弹出窗口之前,检查popupShown 是否为真。如上所述,保存应用程序的状态将确保您只在需要时显示弹出窗口。

了解 Android 如何管理 Activity 的生命周期非常重要,否则您将浪费大量时间来思考为什么您的应用程序行为异常。我的第一个 Android 应用程序非常不可用,因为我刚刚开始并没有完全了解生命周期。

如果您不能完全确定生命周期位,您应该阅读此内容:http://developer.android.com/reference/android/app/Activity.html

【讨论】:

    猜你喜欢
    • 2011-08-17
    • 1970-01-01
    • 2014-09-19
    • 2014-05-26
    • 1970-01-01
    • 1970-01-01
    • 2016-10-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多