openplanning

Hướng dẫn và ví dụ Android AutoCompleteTextView và MultiAutoCompleteTextView

Xem thêm các chuyên mục:

Nhóm phát triển của chúng tôi vừa ra mắt website langlearning.net học tiếng Anh, Nga, Đức, Pháp, Việt, Trung, Hàn, Nhật, ... miễn phí cho tất cả mọi người.
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.
Hãy theo dõi chúng tôi trên Fanpage để nhận được thông báo mỗi khi có bài viết mới. Facebook

1- AutoCompleteTextView & MultiAutoCompleteTextView

  • TODO: Chém gió thêm.

2- Ví dụ với AutoCompleteTextView và MultiAutoCompleteTextView

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:

3- Phụ lục: Thiết kế giao diện

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:

Xem thêm các chuyên mục: