Bài 12: Xử lý sự kiện Onclick và LongClick trong Android

Đến được tới bài viết này và nếu như bạn đã hiểu được tất cả những gì ở bài trước mình đã hướng dẫn thì thật sự mình rất vui còn nếu mọi người vẫn chưa hiểu chỗ nào thì cứ comment bên dưới bài viết mình sẽ trả lời cho nhé, chứ từ đây về sau là bắt đầu bạn sẽ chính thức bước vào thế giới của lập trình android rồi đó.

Ở bài này về sau nữa đa phần bài nào các bạn cũng phải code cả đấy, trước giờ mình toàn nói miệng thôi đúng không nào?Mà iên tâm là mình sẽ để các project ở dưới bài viết nếu chưa hiểu các bạn sẽ tải về xem tí là thông não thôi à.

Hôm nay các bạn sẽ học về việc xử lý sự kiện trong android, xong bài này bạn có thể tự làm những ứng dụng đơn giản được rồi như: máy tính bỏ túi, gọi điện thoại…Và sau bài này mình sẽ thực hành bài làm ứng dụng máy tính bỏ túi nhé các bạn.

Trước khi xem bài này bạn nên đọc qua bài viết của mình nói về 6 cách bắt sự kiện Onlick trên android trong chuyên mục Android nâng cao, hôm nay chúng ta chỉ sử dụng một cách duy nhất để làm thôi vì sau này cũng chỉ thường dùng cách này trong các dự án vì nó đơn giản và nhanh gọn.

Sự kiện trong Android

Đó là việc người dùng tương tác với các giao diện, mà giao diện ở đây chính là do các view tạo thành chính vì thế để biết người dùng làm gì trên view bạn phải bắt sự kiện cho nó.

Có rất nhiều sự kiện khác nhau như: sự kiện click vào view, sự kiện click và giữ lâu, sự kiện scroll view… và phổ biến nhất vẫn là sự kiện click vào View.Hôm nay cũng chỉ làm tới đây thôi, về sau sẽ đụng đến đâu mình sẽ làm tới đó ha.

2. Sự kiện Onlick

Bây giờ chúng ta sẽ làm một ứng dụng gồm 2 Editext và một nút Button, ở EditText là để nhập số vào , khi click vào nút Button thì nó sẽ lấy giá trị của 2 EditText cộng lại và show lên kết quả bằng Toast, nếu bạn chưa biết Toast là gì thì xem bài viết hướng dẫn tại Blog mình nhé, sau này sẽ dùng Toast rất nhiều đó các bạn.

Bây giờ đi xây dựng giao diện ứng dụng, sẵn ôn tiếp kiến thức về layout trong android luôn ha.


Bạn có thể copy y chang mà bỏ vào file layout của mình để test nhé, còn dưới đây là code xử lí ở MainActivity:


Bài này chúng ta đang học xử lý sự kiện nên chỉ cần quan tâm đến nó thôi đúng không nào, ở đây mình dùng cách Inline Anonymous (xem lại bài 6 các bắt sự kiện android tại Blog) để bắt sự kiện cho nút Button Result.

Nhìn vào hàm bắt sự kiện trên ta thấy:


btnResult.setOnClickListener : đây là các bạn gán một sự kiện Onlick vào trong một View nào đó không riêng gì Button nhé bạn có thể là EditText, ImageView, TextView… đa phần tất cả các view đều có sự kiện này cả nhé.Khi gán cho nó sự kiện OnClick như vậy thì nó sẽ lắng nghe xem có ai thao tác click vào nó không, nếu có nó sẽ chạy ngay vào hàm onClick(View view) bên dưới để xử lý.

Ở đây mình dùng biến ab để lấy giá trị hiện tại của 2 editText ra với điều kiện là 2 edittext đó phải có giá trị nếu như không có thì Toast ra lỗi nhập dữ liệu.

Lấy được rồi mình tiến hành cộng 2 giá trị a và b lại và gán kết quả cho thằng result, rồi dùng Toast để show lên thôi.Kết quả bạn sẽ thấy như sau:

Xử lí sự kiện Onlick trong android

Xử lí sự kiện Onlick trong android

Việc bắt sự kiện cũng không có gì khó khăn đúng không mọi người, chỉ việc khởi tạo view nào set sự kiện là xong rồi, nếu trường hợp bạn có rất nhiều Button, ImageView… cần bắt sự kiện thì việc khai báo từng các như vậy sẽ rất dài và sẽ có giải pháp bắt sự kiện theo ID, bạn xem lại bài viết trước tại Blog nhé.

2. Sự kiện LongClick

Ngoài sự kiện onClick nghĩa là click 1 cái vào view thì còn có sự kiện onLongClick, nghĩa là click vào view và giữ trong một khoảng thời gian nào đó hơn 1 giây.Chúng ta cũng có thể bắt được sự kiện này như sau:


Mình mới thêm sự kiện đó ở hàm btnResult.setOnLongClickListener đó nhé, cái này chỉ thêm thôi chứ nó cũng không khác là mấy so với onClick cả đâu.

Nếu bạn chưa hiểu có thể tham khảo video bên dưới đây nhé, chúc tất cả các bạn học tập thật tốt.Mọi ý kiến thắc mắc xin để lại ở comment bên dưới.

Video hướng dẫn xử lí sự kiện trong Android

Download Source Code


Xin chân thành cảm ơn mọi người.

Tiếp theo

 

Bài 12: Xử lý sự kiện Onclick và LongClick trong Android
Đánh giá bài viết nhé

5 Comments

  1. Nam November 9, 2016
    • trangchongcheng November 9, 2016
      • Nam November 9, 2016
  2. Tien December 6, 2016
    • trangchongcheng December 9, 2016

Add Comment

*