【发布时间】:2022-06-11 01:56:53
【问题描述】:
我是 Kotlin 编程的新手。在我的 android 应用程序中,我有一个“addressInfo”对象的数组适配器 - 包含有关地点的数据的对象。
class addressInfo
(
var displayName : String,
var latitude : String,
var longitude : String,
var osmType : String,
var osmId : String,
var osmClass : String
)
以下是适配器的代码:
class AutoSuggestAdapter(context: Context, @LayoutRes private val layoutResource: Int) :
ArrayAdapter<addressInfo>(context, layoutResource), Filterable {
private val mlistData: MutableList<addressInfo>
private val TAG = "Adapter"
fun setData(list: List<addressInfo>?) {
mlistData.clear()
mlistData.addAll(list!!)
}
override fun getCount(): Int {
return mlistData.size
}
@Nullable
override fun getItem(position: Int): addressInfo {
return mlistData[position]
}
/**
* Used to Return the full object directly from adapter.
*
* @param position
* @return
*/
fun getObject(position: Int): addressInfo {
return mlistData[position]
}
override fun getView(position: Int, convertView: View?, parent: ViewGroup): View {
val view: TextView = convertView as TextView? ?: LayoutInflater.from(context).inflate(layoutResource, parent, false) as TextView
var r = mlistData[position].displayName
view.text = r
return view
}
init {
mlistData = ArrayList()
}
}
建议正确显示,但选择其中一个会返回一些错误的文本(不是建议本身,可能是 addressInfo 对象的一些内部 id)。
我希望返回的是 displayName 字符串。如何解决这个问题?
【问题讨论】:
标签: android autocomplete autocompletetextview custom-arrayadapter