Strona 1 z 1
[Android][Java] Niejasna zasada działania metody z AlertDialog.Buider
: 18 paź 2012, 12:13
autor: soulreaver1
Więc mam pewną metodę aalert(). Kompletnie nie rozumiem co się dzieje przy wywołaniu alert.setPositiveButton. Mógłby mi ktoś to wyjaśnić, krok po kroku?
Kod: Zaznacz cały
public void aalert() {
AlertDialog.Builder alert = new AlertDialog.Builder(DisplayMessageActivity.this);
alert.setTitle("Are u ok?");
alert.setMessage("?");
alert.setPositiveButton("Tak",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
Toast.makeText(DisplayMessageActivity.this, "Success", Toast.LENGTH_SHORT).show();
}
});
alert.show();
}
Do tej pory byłem przekonany że w javie nie tworzy się instancji interfejsów.
Re: [Android][Java] Niejasna zasada działania metody z AlertDialog.Buider
: 18 paź 2012, 12:22
autor: Knypolek
Kod: Zaznacz cały
http://developer.android.com/reference/android/app/AlertDialog.Builder.html#setPositiveButton(int, android.content.DialogInterface.OnClickListener)
Z tego co ja zakumałem, to po naciśnięciu na stworzony button (PositiveButton) uaktywnia się listener, który wyświetla "Success".
Re: [Android][Java] Niejasna zasada działania metody z AlertDialog.Buider
: 18 paź 2012, 12:57
autor: soulreaver1
Nie chodzi mi o to jaki jest efekt, tylko w jaki sposób wywoływana jest metoda alert.setPositiveButton().
Re: [Android][Java] Niejasna zasada działania metody z AlertDialog.Buider
: 20 paź 2012, 18:35
autor: Paminol
Re: [Android][Java] Niejasna zasada działania metody z AlertDialog.Buider
: 22 paź 2012, 16:11
autor: Yuri20
W Javie nigdy nie tworzyło się obiektów interfejsów i ta zasada nadal obowiązuje. Za pomocą interfejsów można natomiast tworzyć referencje do obiektów, których klasy ten interfejs implementują. Dla przykładu String implementuje interfejs CharSequence, dlatego możliwa jest następująca konstrukcja:
CharSequence cs = new String("Ciąg znaków");
To co się dzieję w tej magicznej metodzie setPositiveButton to po prostu stworzenie obiektu klasy anonimowej rozszerzającej interfejs onClickListener. Konstrukcja jest mniej więcej taka:
new <klasa bądź interfejs do rozszerzenia>(){ .... ciało klasy .... };
Jeśli tworzona jest klasa anonimowa na podstawie interfejsu to konieczne jest zaimplementowanie metod abstrakcyjnych. Jak widać w przypadku OnClickListener trzeba zaimplementować metodę onClick.
Poczytaj sobie więcej klasach anonimowych.
Re: [Android][Java] Niejasna zasada działania metody z AlertDialog.Buider
: 22 paź 2012, 16:23
autor: soulreaver1
Yuri20 pisze:
To co się dzieję w tej magicznej metodzie setPositiveButton to po prostu stworzenie obiektu klasy anonimowej rozszerzającej interfejs onClickListener. Konstrukcja jest mniej więcej taka:
new <klasa bądź interfejs do rozszerzenia>(){ .... ciało klasy .... };
Jeśli tworzona jest klasa anonimowa na podstawie interfejsu to konieczne jest zaimplementowanie metod abstrakcyjnych. Jak widać w przypadku OnClickListener trzeba zaimplementować metodę onClick.
Poczytaj sobie więcej klasach anonimowych.
Dziękuje, właśnie na taką odpowiedź czekałem. Temat zamknięty.