Powiel możliwe:
Difference between OnClick() event and OnClickListener?Kliknij przycisk słuchaczy w Androidzie
Jestem pół-nowym do rozwoju Android i kiedy po raz pierwszy zaczął starałem się unikać układ xml przez dowolny to konieczne, więc niektóre z moich wcześniejszych projektów zawierają przyciski, które jawnie tworzą OnClickListener i implementują je jako anonimową klasę wewnętrzną. Takich jak -
final Button button = new Button(this);
button.setText("Click to change second line of text");
OnClickListener buttonListener = new View.OnClickListener() {
boolean clicked = false;
int numClicks = 0;
@Override
public void onClick(View v) {
if(numClicks > 5) {
button.setText("STOP IT");
}
numClicks++;
if(clicked == false){
clicked = true;
tv2.setText("Text Changed on Button Click");
}
else
{
clicked = false;
tv2.setText("Click again");
}
}
};
button.setOnClickListener(buttonListener);
Ale jak mam bardziej zaznajomieni z Androidem, zacząłem rozumieć wartość układów xml i wdrożone przyciski jak ten
<Button
android:id="@+id/button1"
android:layout_height = "wrap_content"
android:layout_width ="wrap_content"
android:text = "lets do this"
android:onClick = "DoIt"
/>
w pliku XML układu, gdzie ZrobTo została zdefiniowana w java.
Moje pytanie brzmi, czy te 2 metody funkcjonalnie to samo? Czy gdzieś za kulisami zdefiniowany jest OnClickListener przez kompilator? Czy są jakieś funkcje, które można wykupić za pomocą jednego lub drugiego sposobu?
[Oto przydatny dyskusja ] (http://stackoverflow.com/a/7453469/1154026) Myślę, że pomoże ci w twoich pytaniach. – VicVu
Możesz ustawić odbiornik kliknięć na trzy sposoby, 1. Ustawiając osobny detektor kliknięcia dla każdego elementu. 2. Wdrażanie OnClickListener w działaniu. 3. tworzenie oddzielnej funkcji obsługi kliknięcia przycisku i dodanie tej funkcji w xml. możesz znaleźć ten przykład tutaj http://wiki.workassis.com/android-threeways-to-set-click-listener/ –