openplanning

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

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

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:

Có thể bạn quan tâm

Đây là các khóa học trực tuyến bên ngoài website o7planning mà chúng tôi giới thiệu, nó có thể bao gồm các khóa học miễn phí hoặc giảm giá.