thể trùng lặp:
Difference between OnClick() event and OnClickListener?Nút Bấm Listeners trong Android
Tôi bán mới để phát triển Android và khi tôi lần đầu tiên bắt đầu tôi cố gắng tránh sử dụng cách bố trí xml bằng bất kỳ có nghĩa là cần thiết để một số dự án trước đó của tôi liên quan đến các nút tạo rõ ràng một OnClickListener và triển khai nó như một lớp bên trong vô danh. Chẳng hạn như -
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);
Nhưng như tôi đã quen thuộc hơn với android, tôi bắt đầu hiểu được giá trị của việc bố trí xml và các nút thực hiện như thế này
<Button
android:id="@+id/button1"
android:layout_height = "wrap_content"
android:layout_width ="wrap_content"
android:text = "lets do this"
android:onClick = "DoIt"
/>
Trong xml bố trí, nơi DoIt được định nghĩa trong java.
Câu hỏi của tôi là, 2 phương pháp này có hoạt động giống nhau không? Có một OnClickListener được định nghĩa bởi trình biên dịch ở đâu đó đằng sau hậu trường không? Có bất kỳ tính năng nào bạn giao dịch bằng cách này hay cách khác không?
[Đây là một cuộc thảo luận hữu ích ] (http://stackoverflow.com/a/7453469/1154026) Tôi nghĩ rằng sẽ giúp với câu hỏi của bạn. – VicVu
Bạn có thể đặt trình nghe nhấp chuột theo ba cách, 1. thiết lập trình nghe nhấp chuột riêng lẻ cho từng phần tử. 2. Triển khai OnClickListener trong hoạt động. 3. tạo ra một chức năng riêng biệt để xử lý nút bấm và thêm chức năng này trong xml. bạn có thể tìm thấy những ví dụ này tại đây http://wiki.workassis.com/android-three-ways-to-set-click-listener/ –