Giới thiệu
Tiếp nối bài viết trước Các View cơ bản trong Android, bài viết hôm nay sẽ giới thiệu các event listener thường dùng của các view trong Android. Event được hiểu như là một hành động xảy ra và chúng ta sẽ xử lý hành động đó như thế nào. Ví dụ khi ta nhấn vào Button, hay nhấn vào item trên ListView thì sẽ phát sinh event. Các event đó như thế nào và công dụng ra sao thì bài viết này sẽ làm rõ vấn đề đó.
Một số Event của View
Đa số các View trong Android đều có các Event Listener dưới đây:
setOnClickListener
– Gọi khi View được click.setOnDragListener
– Gọi khi View được kéo.setOnFocusChangeListener
– Gọi khi View được thay đổi focus.setOnHoverListener
– Gọi khi View được hover.setOnKeyListener
– Gọi khi nhấn phím (hardware input) và view được focus.setOnLongClickListener
– Gọi khi View được nhấn và giữ.setOnTouchListener
– Gọi khi View được touch down và touch up.
Cách sử dụng Event Listener trong Android
Để sử dụng Listener chúng ta sử dụng các phương thức trên để set bộ lắng nghe sự kiện và xử lý công việc của chúng ta trong các phương thức được implement của interface.
Ví dụ event khi nhấn vào Button.
Trong file xml định nghĩa:
1 2 3 4 5 |
<Button android:id="@+id/btn_show" android:text="Show" android:layout_width="wrap_content" android:layout_height="wrap_content" /> |
Trong java
1 2 3 4 5 6 7 |
Button btnShow = (Button)findViewById(R.id.btn_show); btnShow.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //TODO something } }); |
Ở trên ta thấy sử dụng phương thức setOnClickListener để set bộ lắng nghe sự kiện, và chúng ta sẽ thực thi những đoạn mã của chúng ta trong phương thức callback onClick của interface OnClickListener.
Một cách tốt để biết những event này là gì thì các bạn hãy thử tạo View và gõ “view.setOn” các bạn sẽ thấy Android Studio sẽ show tất cả các event listener của view đó.
Mội số Event thường dùng
Button
Button thường dùng nhất là sự kiện onClick được giới thiệu ở trên. Ngoài ra bạn có thể thử các event phần trên đã giới thiệu để hiểu rõ thêm.
EditText
Ngoài các Event cơ bản của View thì EditText còn có một số event như dưới đây:
addTextChangedListener
– Phát sinh mỗi lần khi text của EditText thay đổi.setOnEditorActionListener
– Phát sinh khi có một hành động trên bàn phím (soft keyboard) được nhấn.
Ví dụ sử dụng addTextChangedListener
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
EditText etValue = (EditText) findViewById(R.id.etValue); etValue.addTextChangedListener(new TextWatcher() { @Override public void onTextChanged(CharSequence s, int start, int before, int count) { // Fires right as the text is being changed (even supplies the range of text) } @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { // Fires right before text is changing } @Override public void afterTextChanged(Editable s) { // Fires right after the text has changed tvDisplay.setText(s.toString()); } }); |
ListView
Các Event Listener hay sử dụng với ListView được mô tả chi tiết như dưới đây:
setOnItemClickListener
– Được gọi khi một item trên listview được click.setOnItemLongClickListener
– Được gọi khi một item trên listview được click và giữ.setOnItemSelectedListener
– Được gọi khi item được select.
Ví dụ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
lvPlace.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { //TODO somthing } }); lvPlace.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() { @Override public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) { //TODO somthing return false; } }); lvPlace.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { //TODO somthing } @Override public void onNothingSelected(AdapterView<?> parent) { } }); |
Lời kết
Qua bài viết này tôi đã giới thiệu qua các sử dụng Event Listener trong Android cũng như giới thiệu mội số Event Listener thường dùng trong quá trình làm việc với Android. Tuy nhiên sau khi đọc xong bài này các bạn có thể sử dụng những Event Listenner này nhưng sẽ thắc mắc rằng, nó được tạo ra như thế nào. Thì bài viết sau tôi sẽ làm rõ phần đó. Nếu trong bài viết có vấn đề gì thắc mắc các bạn có thể để lại comment để tôi có thể giải đáp thắc mắc cho bạn rõ ràng và chi tiết.