我有一个公共类,它有一些常用的泛型函数,例如用于在我的应用程序中显示对话框。我创建了一个通用的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...)
这只是为了方便访问。
答案 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();
}
})
}
请注意,您不需要Activity
和Context
- 因为前者扩展了后者 - 除非您希望将活动传递为某处的null。