AutoComplete不会返回所需的字符串
我是Kotlin编程的新手。在我的Android应用程序中,我有一个“ advellyInfo”对象的数组适配器 - 带有有关位置的数据的对象。
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()
}
}
正确显示了建议,但是选择其中一个返回一些错误的文本(不是建议本身,可能是地址INFO对象的某些内部ID)。
我希望返回的是DisplayName字符串。如何解决这个问题?
I am new in Kotlin programming. In my android app, I have an array adapter of "addressInfo" objects - objects with data about a place.
class addressInfo
(
var displayName : String,
var latitude : String,
var longitude : String,
var osmType : String,
var osmId : String,
var osmClass : String
)
Following is the code for adapter:
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()
}
}
The suggestions are shown correctly, but choosing one of them returns some wrong text (not the suggestion itself, probably some inner id of the addressInfo object).
What I wish to get returned is the displayName string. How to fix this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我设法将所需的字符串设置在OnItemClicklistener方法中:
I managed to set the desired string inside onItemClickListener method: