我有一个测验应用。我希望用户从警报对话框中选择问题类型。所以警报对话框有一个复选框按钮,所以如果用户可以选择更多然后类型。当用户在警告对话框中单击肯定按钮时,它会将信息发送到if条件,然后条件将过滤问题,然后将其传递给数组。问题是数组内部oncreate,我希望警告对话框在同一个类,所以当我运行类oncreate将启动,我得到null异常,因为我没有传递任何信息到数组。 如何在用户单击警告对话框的正面按钮后延迟oncreate()并使其加载。 警报对话框将在同一个类中。 那我该怎么办呢?可能吗? 并谢谢。
答案 0 :(得分:1)
onCreate()是根据android activity lifecycle创建活动时调用的第一个,所以不。如果您不希望它开始,除非他们点击“确定”,否则我不确定为什么您会在同一活动中想要它。把它放在它自己的班级或以前的活动中。
答案 1 :(得分:1)
不,你不能,如果你试图在一个活动中的OnCreate()方法中延迟一些东西,它将抛出异常,因为你没有在那时放置警报对话框的上下文。正如codeMagic之前所说,如果您在此之前有先前的活动,那么您最好的选择是在调用该意图的startActivity之前创建警报。
答案 2 :(得分:1)
我建议在这种情况下使用Fragments。加载Activty,显示对话框并根据答案显示“正确答案片段”或“无效答案片段”。 使用此解决方案加载活动(无需延迟),您只需动态更改活动的内容。
答案 3 :(得分:0)
尝试使用 AsyncTask 类。 onPostExecute 方法可以完成您正在寻找的工作..