Hướng dẫn và ví dụ Android AutoCompleteTextView và MultiAutoCompleteTextView
Xem thêm các chuyên mục:

Là một website được viết trên công nghệ web Flutter vì vậy hỗ trợ rất tốt cho người học, kể cả những người học khó tính nhất.
Hiện tại website đang tiếp tục được cập nhập nội dung cho phong phú và đầy đủ hơn. Mong các bạn nghé thăm và ủng hộ website mới của chúng tôi.




- TODO: Chém gió thêm.
Tạo một project có tên AndroidAutoCompleteTextView:
- File > New > New Project > Empty Activity
- Name: AndroidAutoCompleteTextView
- Package name: org.o7planning.androidautocompletetextview
- Language: Java
Giao diện ứng dụng:

Nếu bạn quan tâm tới các bước để thiết kế giao diện ứng dụng này hãy xem phần phụ lục phía cuối bài viết.
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:id="@+id/textView"
android:layout_width="0dp"
android:layout_height="40dp"
android:layout_marginStart="16dp"
android:layout_marginLeft="16dp"
android:layout_marginTop="30dp"
android:layout_marginEnd="16dp"
android:layout_marginRight="16dp"
android:text="Full name"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<EditText
android:id="@+id/editText"
android:layout_width="0dp"
android:layout_height="46dp"
android:layout_marginStart="16dp"
android:layout_marginLeft="16dp"
android:layout_marginTop="31dp"
android:layout_marginEnd="16dp"
android:layout_marginRight="16dp"
android:ems="10"
android:inputType="textPersonName"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView" />
<TextView
android:id="@+id/textView2"
android:layout_width="0dp"
android:layout_height="37dp"
android:layout_marginStart="16dp"
android:layout_marginLeft="16dp"
android:layout_marginTop="32dp"
android:layout_marginEnd="16dp"
android:layout_marginRight="16dp"
android:text="Country"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/editText" />
<AutoCompleteTextView
android:id="@+id/autoCompleteTextView"
android:layout_width="0dp"
android:layout_height="53dp"
android:layout_marginStart="16dp"
android:layout_marginLeft="16dp"
android:layout_marginTop="25dp"
android:layout_marginEnd="16dp"
android:layout_marginRight="16dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView2" />
<TextView
android:id="@+id/textView3"
android:layout_width="0dp"
android:layout_height="32dp"
android:layout_marginStart="16dp"
android:layout_marginLeft="16dp"
android:layout_marginTop="26dp"
android:layout_marginEnd="16dp"
android:layout_marginRight="16dp"
android:text="Programming Languages"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/autoCompleteTextView" />
<MultiAutoCompleteTextView
android:id="@+id/multiAutoCompleteTextView"
android:layout_width="0dp"
android:layout_height="51dp"
android:layout_marginStart="16dp"
android:layout_marginLeft="16dp"
android:layout_marginTop="22dp"
android:layout_marginEnd="16dp"
android:layout_marginRight="16dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView3" />
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="34dp"
android:text="Submit"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/multiAutoCompleteTextView" />
</androidx.constraintlayout.widget.ConstraintLayout>
MainActivity.java
package org.o7planning.androidautocompletetextview;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.Button;
import android.widget.EditText;
import android.widget.MultiAutoCompleteTextView;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
private EditText textFullname;
private AutoCompleteTextView textCountry;
private MultiAutoCompleteTextView textProgrammingLanguage;
private Button buttonSubmit;
private String[] countries = {"Vietnam","England","Canada", "France","Australia"};
private String[] languages={"Java ","CSharp","Visual Basic","Swift","C/C++"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textFullname = (EditText) findViewById(R.id.editText);
textCountry =(AutoCompleteTextView)findViewById(R.id.autoCompleteTextView);
textProgrammingLanguage =(MultiAutoCompleteTextView)findViewById(R.id.multiAutoCompleteTextView);
buttonSubmit= (Button) findViewById(R.id.button);
ArrayAdapter adapterCountries
= new ArrayAdapter(this,android.R.layout.simple_list_item_1,countries);
textCountry.setAdapter(adapterCountries);
// Set the minimum number of characters, to show suggestions
textCountry.setThreshold(1);
ArrayAdapter adapterLanguages
= new ArrayAdapter(this,android.R.layout.simple_list_item_1,languages);
textProgrammingLanguage.setAdapter(adapterLanguages);
textProgrammingLanguage.setThreshold(1);
// The text separated by commas
textProgrammingLanguage.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
buttonSubmit.setOnClickListener(new Button.OnClickListener(){
@Override
public void onClick(View v) {
submitForm();
}
});
}
private void submitForm() {
String text="Fullname: "+ this.textFullname.getText().toString()
+"\nCountry: "+ this.textCountry.getText().toString()
+"\nLanguages: "+ this.textProgrammingLanguage.getText().toString();
Toast.makeText(this, text,Toast.LENGTH_LONG).show();
}
}
Chạy ứng dụng:

Kéo thả các thành phần vào giao diện

Sét đặt các giàng buộc (constraint):

Sét đặt ID, Text cho các thành phần trên giao diện:
