Witam serdecznie!
Tworzę obiekt klasy, w której mam metodę do tworzenia AlertDialogu. Chciałbym aby po kliknięciu w item interfejsu dialogu, otworzyło się nowe Activity, a zamknęło aktualne, jednak coś robię źle.
Constructor wygląda tak:
public InfoWindow(Activity activity, Context context, int which) {
this.activity = activity;
this.context = context;
this.which = which;
}
Tworzenie dialogu i otwieranie Activity:
public void showWindow(CharSequence[] items){
final CharSequence[] listOptions = items;
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
builder.setTitle("Uzasadnij pauze");
builder.setItems(listOptions, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int item) {
if (listOptions[item].equals("Brak materiałów")) {
toastMsg.showCustomAlert(context, activity, "Idź po materiały i ponownie włącz play.");
} else if (listOptions[item].equals("Inne")) {
activity.finish();
Intent startActivity = new Intent(context, FailureActivity.class);// próbowałem też Intent startActivity = new Intent(activity, FailureActivity.class);
context.startActivity(startActivity);
} else if(listOptions[item].equals("Zamknij okno")){
dialog.dismiss();
}
}
});
}
Wywala się na finish(), ale gdy jest zakomentowany wywala się w następnej linii. Metoda, którą tworzę toast czyli showCustomAlert, do którego przekazuję context i activity, działa poprawnie. Co wskazuję na to, że context i activity są poprawnie wypełnione danymi.
Dlatego Moje pytanie brzmi jak poprawnie powinno to wyglądać?