[分享] 下拉式選單補齊email

看板AndroidDev作者 (nahgnimiast)時間13年前 (2012/12/26 23:09), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串1/1
其實就是edit有下拉式選單,會把項目設成 比如輸入aaa 選項會是 aaa@gmail.com aaa@yahoo.com aaa@hotmail.com 在google了一個下午之後,找到做法。 基本上用android的原生AutoCompleteTextView物件。 AutoCompleteTextView + ArrayAdapter可以實現 秀出符合輸入字串的ArrayAdapter的內容。 不過這不是我想要的,因為aaa這個字串是動態的。 所以使用找到的一個方法,使用ArrayAdapter implements Filterable 可以修改由輸入的內容(aaa),態動決定輸出的內容。以下程式碼只是個範例 ,Filter轉換的方法,自行撰寫。 class MyArrayList extends ArrayAdapter<String> implements Filterable { Filter mFilter = new Filter() { @Override protected FilterResults performFiltering(CharSequence arg0) { // 這裡return的FilterResults會傳到publishResults // arg0 是目前輸入的字串,沒有時會是null return null; } @Override protected void publishResults(CharSequence constraint, FilterResults results) { clear(); add(constraint + "@gmail.com"); add(constraint + "@hotmail.com"); add(constraint + "@yahoo.com"); notifyDataSetChanged(); } } @Override public Filter getFilter() { return mFilter; } } 還有AutoCompleteTextView用到PopWindows 所以不可以在atach to Windows之前產生PopWidnows,不然會有exception 像我用在fragment中,在onCreateView時產生PopWindows就會出現,所以 我把AutoCompleteTextView的setAdpater(),這個動作,移到以下函式中 去作,就沒事。 @Override protected void onAttachedToWindow() { super.onAttachedToWindow(); setAdapter(new MyArrayList(mContext)); } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.241.128.198 ※ 編輯: tsaiminghan 來自: 111.241.128.198 (12/26 23:10) ※ 編輯: tsaiminghan 來自: 111.241.128.198 (12/26 23:12) ※ 編輯: tsaiminghan 來自: 111.241.128.198 (12/26 23:13) ※ 編輯: tsaiminghan 來自: 111.241.128.198 (12/26 23:18)

12/27 00:09, , 1F
跟我今天在研究的東西有點類似XD 推一個
12/27 00:09, 1F
文章代碼(AID): #1GsnCMU4 (AndroidDev)