0

我有一个测验应用程序。我希望用户从警报对话框中选择问题类型。所以警报对话框有一个复选框按钮,所以如果用户可以选择更多然后类型。当用户单击警报对话框中的肯定按钮时,它将向 if 条件发送信息,然后条件将过滤问题,然后将其传递给数组。问题是它在 oncreate 内部的数组,我希望警报对话框在同一个类中,所以当我运行类时 oncreate 将启动并且我得到空异常,因为我没有将任何信息传递给数组。我如何才能延迟 oncreate() 并使其仅在用户单击警报对话框的正按钮后才加载。警报对话框将在同一类中。那么我该怎么做呢?是否可以?谢谢。

4

4 回答 4

1

onCreate() 是根据android 活动生命周期创建活动时第一个调用的,所以,不。如果您不希望它启动,除非他们单击“确定”,否则我不确定为什么您希望它在同一个活动中。把它放在它自己的班级或以前的活动中。

于 2012-11-29T16:11:07.913 回答
1

不,您不能,如果您尝试在活动中延迟 OnCreate() 方法中的某些内容,它将引发异常,因为您当时没有上下文来放置警报对话框。正如 codeMagic 之前所说,如果您在此之前有一个先前的活动,最好的办法是在调用 startActivity 之前创建警报。

于 2012-11-29T16:25:34.190 回答
1

我建议在这种情况下使用Fragments 。加载 Activty,显示对话框并根据答案显示“正确答案片段”或“无效答案片段”。使用此解决方案加载活动(无需延迟),您只需动态更改活动的内容。

于 2012-11-29T16:45:56.077 回答
0

尝试使用AsyncTask类。onPostExecute方法可能会完成您正在寻找的工作..

于 2012-11-29T16:09:29.667 回答