如何调用通用活动完成

时间:2011-09-30 06:19:05

标签: java android android-activity

我有一个公共类,它有一些常用的泛型函数,例如用于在我的应用程序中显示对话框。我创建了一个通用的alertButtonDialog函数,并且只要我使用对话框就想在活动中调用它。我是Java的新手,所以请原谅我,如果它非常基础。

public static class AlertDialogs{

    public static void alertButtonDialog(Activity activity, Context context, String title, String message, 
            String positiveButton, String negativeButton) {

        AlertDialog.Builder alertBuilder = new AlertDialog.Builder(context);
        alertBuilder.setTitle(title);
        alertBuilder.setMessage(message);
        alertBuilder.setPositiveButton(positiveButton, new OnClickListener() {

            public void onClick(DialogInterface dialog, int which) {
                Activity.this.finish(); // *?? How to do this part ??*
                // the activity to be finished is the activity which calls this function
            }
        })

    }
}

稍后在任何其他活动中,每当我显示对话框时,我都会这样做

 AlertDialogs.alertButtonDialog(...all my Strings...)

这只是为了方便访问。

1 个答案:

答案 0 :(得分:2)

alertButtonDialog函数中,将Activity activity参数定义为final。然后,从onClick侦听器中调用activity.finish();

public static void alertButtonDialog(final Activity activity, Context context, String title, String message, 
        String positiveButton, String negativeButton) {

    AlertDialog.Builder alertBuilder = new AlertDialog.Builder(context);
    ...
    alertBuilder.setPositiveButton(positiveButton, new OnClickListener() {

        public void onClick(DialogInterface dialog, int which) {
            activity.finish();
        }
    })

}

请注意,您不需要ActivityContext - 因为前者扩展了后者 - 除非您希望将活动传递为某处的null。