我正在使用AutoCompleteTextView
来显示可由用户选择的项目。如果用户键入某些内容,它将向服务器发送子字符串,并且服务器将返回对象列表。我想用这个新列表替换ArrayAdapter
列表,这意味着新的选项列表将出现在下拉菜单中。但是,当我清除列表并将新列表中的所有元素添加到其中,然后调用notifyDataSetChanged()
时,ArrayAdapter
(已使用ArrayAdapter.count
)中有0个项目。
objAdapter = ArrayAdapter(activity!!, select_dialog_item_material, itemEntityList)
itemEditText?.setAdapter(objAdapter)
itemEditText?.setOnItemClickListener { parent, _, position, _ ->
(activity as RevActivity).selectedObject = parent.getItemAtPosition(position) as RevObject
nextButton?.isEnabled = (activity as RevActivity).selectedObject != null
}
itemEditText?.addTextChangedListener(object: TextWatcher{
override fun afterTextChanged(e: Editable?) {
}
override fun beforeTextChanged(query: CharSequence?, start: Int, count: Int, after: Int) {
}
override fun onTextChanged(query: CharSequence?, start: Int, before: Int, count: Int) {
getRevItemsByType(query.toString(), getSelectedType(), (activity as RevActivity).revReportEntity!!, ::revItemCallback)
}
})
private fun revItemCallback(revObjects: ArrayList<RevObject>, err: ParseException?){
if (err == null){
itemEntityList.clear()
itemEntityList.addAll(revObjects)
objAdapter?.clear()
//itemEntityList.forEachIndexed { index, revObject -> objAdapter?.insert(revObject, index)}
objAdapter?.notifyDataSetChanged()
}
}