我有一个 Activity 调用实用程序类中的方法。该方法检查用户是否符合资格。如果是,则返回 true。如果不是,它会返回 false,但会创建并打开一个警报对话框来解释原因。在一种情况下,当用户单击对话框中的“确定”按钮时,它将启动一个新 Activity 。单击对话框设置的代码如下。该对话框是一个自定义对话框,它只是扩展了AlertDialog.Builder
。
if(dialog.getBodyText().toString().equals(prospectError)){
dialog.setOkClickListener(new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Intent i = new Intent(((Dialog)dialog).getContext(),NotEligibleActivity_.class);
((Dialog)dialog).getContext().startActivity(i);
}
});
当我单击“确定”按钮时,对话框关闭,但 Activity 未启动。我将 Activity 作为上下文传递到 checkEligiblity
方法中。这在初始化对话框时使用。
您应该使用 Activity 上下文,而不是对话框上下文。
public class Example extends Activity
{
Example instance = null;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
instance = this;
...
}
}
并使用instance
变量而不是((Dialog)dialog).getContext()
我是一名优秀的程序员,十分优秀!