一、初步了解EditText控件的自動完成功能
EditText是Android應用程序中使用非常頻繁的控件之一,它可以讓用戶輸入一些文本信息。除此之外,EditText還具有自動完成功能。所謂自動完成功能,就是當用戶在EditText中輸入了部分字符後,程序會自動顯示與這部分字符相關的一些選項,並供用戶選擇。
EditText控件和自動完成功能的實現,不僅能夠讓輸入信息更加方便和快捷,還可以提高應用程序的體驗性。
二、實現EditText控件的自動完成功能
使用Android Studio實現EditText控件的自動完成功能,需要藉助ArrayAdapter、ListView等控件。下面是實現自動完成的關鍵代碼:
// 獲取EditText實例 EditText et = (EditText)findViewById(R.id.et_input); // 設置適配器並關聯ListView ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_dropdown_item_1line,products); final ListView lv = (ListView)findViewById(R.id.lv_auto); lv.setAdapter(adapter); // 監聽EditText中的文本改變事件,實現自動完成的功能 et.addTextChangedListener(new TextWatcher() { @Override public void onTextChanged(CharSequence s, int start, int before, int count) { if (count > 0) { String str = s.toString(); List<String> filterList = new ArrayList<String>(); for (String product : products) { if (product.contains(str)) { filterList.add(product); } } ArrayAdapter<String> mAdapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_1, filterList); lv.setAdapter(mAdapter); lv.setVisibility(View.VISIBLE); } else { lv.setVisibility(View.GONE); } } @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) {} @Override public void afterTextChanged(Editable s) {} });
三、小結
通過上述代碼的實現,我們可以看到,EditText控件的自動完成功能實現起來並不困難。只要藉助適當的控件和監聽事件,便能讓用戶的輸入體驗更加流暢和便捷。
需要注意的是,在實際開發過程中,我們還需要考慮到數據來源、防止重複數據、控件的UI設計等問題,以達到更好的使用體驗。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/231679.html