Android spinner如何實(shí)現(xiàn)自動(dòng)補(bǔ)全

小樊
82
2024-10-15 00:49:33

在Android中,Spinner本身不支持自動(dòng)補(bǔ)全功能。要實(shí)現(xiàn)自動(dòng)補(bǔ)全,你需要使用AutoCompleteTextView組件。以下是如何在Android中使用AutoCompleteTextView實(shí)現(xiàn)自動(dòng)補(bǔ)全功能的步驟:

  1. 在布局文件(例如activity_main.xml)中添加一個(gè)AutoCompleteTextView組件:
<AutoCompleteTextView
    android:id="@+id/autoCompleteTextView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:hint="請(qǐng)輸入關(guān)鍵字" />
  1. 在Activity(例如MainActivity.java)中,初始化AutoCompleteTextView組件,并設(shè)置適配器:
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        AutoCompleteTextView autoCompleteTextView = findViewById(R.id.autoCompleteTextView);

        // 創(chuàng)建一個(gè)數(shù)組適配器
        ArrayAdapter<String> adapter = new ArrayAdapter<>(this,
                android.R.layout.simple_dropdown_item_1line, getData());

        // 設(shè)置適配器
        autoCompleteTextView.setAdapter(adapter);

        // 設(shè)置自動(dòng)補(bǔ)全監(jiān)聽(tīng)器
        autoCompleteTextView.setOnItemClickListener((parent, view, position, id) -> {
            String selectedItem = parent.getItemAtPosition(position).toString();
            // 在這里處理用戶選擇的補(bǔ)全項(xiàng)
            Toast.makeText(MainActivity.this, "選中的補(bǔ)全項(xiàng): " + selectedItem, Toast.LENGTH_SHORT).show();
        });
    }

    // 獲取補(bǔ)全數(shù)據(jù)
    private String[] getData() {
        return new String[]{"Apple", "Banana", "Cherry", "Grape", "Orange", "Peach", "Pineapple", "Strawberry"};
    }
}

在這個(gè)示例中,我們創(chuàng)建了一個(gè)包含水果名稱(chēng)的字符串?dāng)?shù)組作為補(bǔ)全數(shù)據(jù)。當(dāng)用戶在AutoCompleteTextView中輸入時(shí),將根據(jù)輸入的內(nèi)容顯示匹配的補(bǔ)全建議。用戶可以選擇其中一個(gè)建議,也可以繼續(xù)輸入以獲取更多建議。

0