【问题标题】:AutoComplete does not return desired string自动完成不返回所需的字符串
【发布时间】: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


    【解决方案1】:

    我设法在 onItemClickListener 方法中设置了所需的字符串:

    autoCompleteTextView.onItemClickListener =
        OnItemClickListener { parent, view, position, id ->
                autoCompleteTextView.setText(autoSuggestAdapter!!.getObject(position).displayName)
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-13
      • 1970-01-01
      • 2016-05-03
      • 2017-09-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多