- 需求如题所示,每次看到 AutoCompleteTextView(后文将以AT表示此控件)的示例用法都是仅仅能传进去一个 List<String>,若最后我们想要的不是输入框内的值,而是值对应的Id的时候肿么办咧?
- 举个栗子:有这么一个 Bean,Student 类,当我们把这个对象传到 AT 中时,我们仅仅只想展示 studentName,不展示其余字段,然而看源码发现,AT 控件是通过对象的 toString() 方法来获取 value 的,意思就是通过 Student 的 toString() 方法获取展示的每个 item 项的 value。
- 此时问题就清晰了,我们可以通过重写 Student 的 toString() 方法来控制需要 AT 展示的 value
-
然后问题又来了,我们如何获取对象呢?又如何去获取所选 item 中对象的 ID 呢?很简单,透过源码发现其实 AT 是通过adapter.getItem(position) 方法去获取对象的。所以我们可以酱紫: