AutoCompleteTextView trong Android: Hướng dẫn kèm ví dụ
3 phút đọc07/08/2025
Chris Pham
Technical Writer
0 lượt xem
0 lượt xem
Reading Time: 3minutes
AutoCompleteTextView là một trường nhập liệu có thể chỉnh sửa, hiển thị tự động các gợi ý hoàn thành trong khi người dùng đang gõ trong ứng dụng Android. Trong hướng dẫn này, chúng ta sẽ triển khai AutoCompleteTextView trong ứng dụng bằng cách sử dụng ArrayAdapter để định nghĩa danh sách các gợi ý.
Tổng quan về Android AutoCompleteTextView
AutoCompleteTextView là một thành phần được sử dụng để hiển thị các gợi ý trong khi viết trong một trường văn bản có thể chỉnh sửa. Danh sách gợi ý sẽ được hiển thị dưới dạng menu thả xuống (dropdown menu), từ đó người dùng có thể chọn mục mong muốn. Danh sách gợi ý được lấy từ một adapter và chỉ xuất hiện sau khi nhập một số ký tự nhất định, được chỉ định trong thuộc tính threshold. Để sử dụng một trường AutoCompleteTextView, cần khai báo nó trong layout xml như sau:
Lưu ý: android:ems hoặc setEms(x) thiết lập chiều rộng của TextView sao cho vừa với một đoạn văn bản gồm x chữ cái ‘M’, bất kể độ dài thực tế và kích thước chữ. Một số phương thức quan trọng của danh sách gợi ý trong AutoCompleteTextView được liệt kê bên dưới:
getAdapter() : Phương thức này trả về một adapter có khả năng lọc được, được sử dụng cho việc tự động gợi ý
getCompletionHint() : Phương thức này trả về văn bản gợi ý tùy chọn được hiển thị ở dưới cùng của danh sách khớp
getDropDownAnchor() : Phương thức này trả về id của view mà danh sách thả xuống của auto-complete được gắn vào
getListSelection() : Phương thức này trả về vị trí được chọn trong danh sách thả xuống, nếu có
isPopupShowing() : Phương thức này cho biết popup menu có đang hiển thị hay không
setText(CharSequence text, boolean filter) : Phương thức này đặt nội dung văn bản, tuy nhiên có thể tắt chức năng lọc
showDropDown() : Phương thức này hiển thị danh sách thả xuống lên màn hình
Phương thức setAdapter được dùng để thiết lập adapter cho autoCompleteTextView. Hãy cùng chuyển sang phần viết mã.
Cấu trúc dự án Android AutoCompleteTextView
Dự án này chứa một TextView đơn giản và một AutoCompleteTextView trong bố cục của MainActivity. ArrayAdapter chứa các loại trái cây sau: Apple, Banana, Cherry, Date, Grape, Kiwi, Mango, Pear.
Mã ví dụ Android AutoCompleteTextView
Bố cục của MainActivity được định nghĩa như sau: activity_main.xml
MainActivity.java được định nghĩa như sau.
package com.journaldev.autocomplete;
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
public class MainActivity extends Activity {
String[] fruits = {"Apple", "Banana", "Cherry", "Date", "Grape", "Kiwi", "Mango", "Pear"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Creating the instance of ArrayAdapter containing list of fruit names
ArrayAdapter adapter = new ArrayAdapter
(this, android.R.layout.select_dialog_item, fruits);
//Getting the instance of AutoCompleteTextView
AutoCompleteTextView actv = (AutoCompleteTextView) findViewById(R.id.autoCompleteTextView);
actv.setThreshold(1);//will start working from first character
actv.setAdapter(adapter);//setting the adapter data into the AutoCompleteTextView
actv.setTextColor(Color.RED);
}
}
Trong đoạn mã trên, chúng ta đã lưu danh sách các loại trái cây trong một ArrayAdapter với layout được nhập từ Android SDK. Màu chữ trong ô nhập liệu (Editable TextView) là màu đỏ. Thuộc tính threshold được đặt là 1 có nghĩa là để hiển thị danh sách gợi ý, người dùng cần nhập ít nhất một ký tự. Lưu ý: Danh sách gợi ý chỉ hiển thị khi trường nhập liệu được focus.
Dưới đây là ứng dụng ví dụ của chúng ta với tính năng tự động hoàn thành khi chạy.
Về tác giả
Chris PhamTechnical Writer
I have over 5 years of experience writing technical documentation for tech products, making them accessible and user-friendly. My focus is always on providing clear and precise information.
@#@
Tôi đã có hơn 5 năm kinh nghiệm viết tài liệu kỹ thuật cho các sản phẩm công nghệ, giúp người dùng dễ dàng tiếp cận và sử dụng. Tôi luôn tập trung vào việc cung cấp thông tin chính xác và dễ hiểu.
Cập nhật thông tin mới nhấtNhận các thông tin mới nhất về mối đe dọa, báo cáo an ninh mạng từ CyStack về hòm thư điện tử của bạn
Thảo luận (0)
Đăng nhập để thảo luận
Bài viết liên quan
{"success":true,"head":"<title>AutoCompleteTextView trong Android: Hướng dẫn kèm ví dụ - CyStack Tutorial</title>\n<meta name=\"description\" content=\"Trong hướng dẫn này, chúng ta sẽ triển khai AutoCompleteTextView trong ứng dụng bằng cách sử dụng ArrayAdapter để định nghĩa danh sách các gợi ý.\"/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-video-preview:-1, max-image-preview:large\"/>\n<link rel=\"canonical\" href=\"https://blog.cystack.org/tutorial/2025/08/07/autocompletetextview-trong-android/\" />\n<meta property=\"og:locale\" content=\"en_US\" />\n<meta property=\"og:type\" content=\"article\" />\n<meta property=\"og:title\" content=\"AutoCompleteTextView trong Android: Hướng dẫn kèm ví dụ - CyStack Tutorial\" />\n<meta property=\"og:description\" content=\"Trong hướng dẫn này, chúng ta sẽ triển khai AutoCompleteTextView trong ứng dụng bằng cách sử dụng ArrayAdapter để định nghĩa danh sách các gợi ý.\" />\n<meta property=\"og:url\" content=\"https://blog.cystack.org/tutorial/2025/08/07/autocompletetextview-trong-android/\" />\n<meta property=\"og:site_name\" content=\"CyStack Tutorial\" />\n<meta property=\"article:tag\" content=\"vi\" />\n<meta property=\"article:section\" content=\"Android\" />\n<meta property=\"og:image\" content=\"https://s2.cystack.net/tutorial/07223516/autocompletetextview-trong-android.jpg\" />\n<meta property=\"og:image:secure_url\" content=\"https://s2.cystack.net/tutorial/07223516/autocompletetextview-trong-android.jpg\" />\n<meta property=\"og:image:width\" content=\"1200\" />\n<meta property=\"og:image:height\" content=\"630\" />\n<meta property=\"og:image:alt\" content=\"AutoCompleteTextView trong Android\" />\n<meta property=\"og:image:type\" content=\"image/jpeg\" />\n<meta property=\"article:published_time\" content=\"2025-08-07T22:36:22+07:00\" />\n<meta name=\"twitter:card\" content=\"summary_large_image\" />\n<meta name=\"twitter:title\" content=\"AutoCompleteTextView trong Android: Hướng dẫn kèm ví dụ - CyStack Tutorial\" />\n<meta name=\"twitter:description\" content=\"Trong hướng dẫn này, chúng ta sẽ triển khai AutoCompleteTextView trong ứng dụng bằng cách sử dụng ArrayAdapter để định nghĩa danh sách các gợi ý.\" />\n<meta name=\"twitter:image\" content=\"https://s2.cystack.net/tutorial/07223516/autocompletetextview-trong-android.jpg\" />\n<meta name=\"twitter:label1\" content=\"Written by\" />\n<meta name=\"twitter:data1\" content=\"Chris Pham\" />\n<meta name=\"twitter:label2\" content=\"Time to read\" />\n<meta name=\"twitter:data2\" content=\"4 minutes\" />\n<script type=\"application/ld+json\" class=\"rank-math-schema\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https://blog.cystack.org/tutorial/#person\",\"name\":\"CyStack Tutorial\"},{\"@type\":\"WebSite\",\"@id\":\"https://blog.cystack.org/tutorial/#website\",\"url\":\"https://blog.cystack.org/tutorial\",\"name\":\"CyStack Tutorial\",\"publisher\":{\"@id\":\"https://blog.cystack.org/tutorial/#person\"},\"inLanguage\":\"en-US\"},{\"@type\":\"ImageObject\",\"@id\":\"https://s2.cystack.net/tutorial/07223516/autocompletetextview-trong-android.jpg\",\"url\":\"https://s2.cystack.net/tutorial/07223516/autocompletetextview-trong-android.jpg\",\"width\":\"1200\",\"height\":\"630\",\"caption\":\"AutoCompleteTextView trong Android\",\"inLanguage\":\"en-US\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://blog.cystack.org/tutorial/2025/08/07/autocompletetextview-trong-android/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":\"1\",\"item\":{\"@id\":\"https://blog.cystack.org/tutorial\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"position\":\"2\",\"item\":{\"@id\":\"https://blog.cystack.org/tutorial/category/android/\",\"name\":\"Android\"}},{\"@type\":\"ListItem\",\"position\":\"3\",\"item\":{\"@id\":\"https://blog.cystack.org/tutorial/2025/08/07/autocompletetextview-trong-android/\",\"name\":\"AutoCompleteTextView trong Android: H\\u01b0\\u1edbng d\\u1eabn k\\u00e8m v\\u00ed d\\u1ee5\"}}]},{\"@type\":\"WebPage\",\"@id\":\"https://blog.cystack.org/tutorial/2025/08/07/autocompletetextview-trong-android/#webpage\",\"url\":\"https://blog.cystack.org/tutorial/2025/08/07/autocompletetextview-trong-android/\",\"name\":\"AutoCompleteTextView trong Android: H\\u01b0\\u1edbng d\\u1eabn k\\u00e8m v\\u00ed d\\u1ee5 - CyStack Tutorial\",\"datePublished\":\"2025-08-07T22:36:22+07:00\",\"dateModified\":\"2025-08-07T22:36:22+07:00\",\"isPartOf\":{\"@id\":\"https://blog.cystack.org/tutorial/#website\"},\"primaryImageOfPage\":{\"@id\":\"https://s2.cystack.net/tutorial/07223516/autocompletetextview-trong-android.jpg\"},\"inLanguage\":\"en-US\",\"breadcrumb\":{\"@id\":\"https://blog.cystack.org/tutorial/2025/08/07/autocompletetextview-trong-android/#breadcrumb\"}},{\"@type\":\"Person\",\"@id\":\"https://blog.cystack.org/tutorial/author/codeweaver/\",\"name\":\"Chris Pham\",\"url\":\"https://blog.cystack.org/tutorial/author/codeweaver/\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https://secure.gravatar.com/avatar/7a3584c941fa360ac061b2a8f15684ced7b92daa1f09481be135a684d989e9b9?s=96&d=mm&r=g\",\"url\":\"https://secure.gravatar.com/avatar/7a3584c941fa360ac061b2a8f15684ced7b92daa1f09481be135a684d989e9b9?s=96&d=mm&r=g\",\"caption\":\"Chris Pham\",\"inLanguage\":\"en-US\"}},{\"@type\":\"BlogPosting\",\"headline\":\"AutoCompleteTextView trong Android: H\\u01b0\\u1edbng d\\u1eabn k\\u00e8m v\\u00ed d\\u1ee5 - CyStack Tutorial\",\"keywords\":\"AutoCompleteTextView,AutoCompleteTextView trong Android,Android AutoCompleteTextView\",\"datePublished\":\"2025-08-07T22:36:22+07:00\",\"dateModified\":\"2025-08-07T22:36:22+07:00\",\"articleSection\":\"Android\",\"author\":{\"@id\":\"https://blog.cystack.org/tutorial/author/codeweaver/\",\"name\":\"Chris Pham\"},\"publisher\":{\"@id\":\"https://blog.cystack.org/tutorial/#person\"},\"description\":\"Trong h\\u01b0\\u1edbng d\\u1eabn n\\u00e0y, ch\\u00fang ta s\\u1ebd tri\\u1ec3n khai AutoCompleteTextView trong \\u1ee9ng d\\u1ee5ng b\\u1eb1ng c\\u00e1ch s\\u1eed d\\u1ee5ng ArrayAdapter \\u0111\\u1ec3 \\u0111\\u1ecbnh ngh\\u0129a danh s\\u00e1ch c\\u00e1c g\\u1ee3i \\u00fd.\",\"name\":\"AutoCompleteTextView trong Android: H\\u01b0\\u1edbng d\\u1eabn k\\u00e8m v\\u00ed d\\u1ee5 - CyStack Tutorial\",\"@id\":\"https://blog.cystack.org/tutorial/2025/08/07/autocompletetextview-trong-android/#richSnippet\",\"isPartOf\":{\"@id\":\"https://blog.cystack.org/tutorial/2025/08/07/autocompletetextview-trong-android/#webpage\"},\"image\":{\"@id\":\"https://s2.cystack.net/tutorial/07223516/autocompletetextview-trong-android.jpg\"},\"inLanguage\":\"en-US\",\"mainEntityOfPage\":{\"@id\":\"https://blog.cystack.org/tutorial/2025/08/07/autocompletetextview-trong-android/#webpage\"}}]}</script>\n"}