android回收器视图中微调器中的OnClickItemListener
我创建项目,其中我只有微调器:android回收器视图中微调器中的OnClickItemListener,android,kotlin,spinner,Android,Kotlin,Spinner,我创建项目,其中我只有微调器: class ItemSelect constructor(val list: ArrayList<String>) : AbstractItem<ItemSelect, ItemSelect.ViewHolder>() { override fun getType(): Int { return R.id.itemSpinner } override fun getLayoutRes(): Int
class ItemSelect constructor(val list: ArrayList<String>) : AbstractItem<ItemSelect, ItemSelect.ViewHolder>() {
override fun getType(): Int {
return R.id.itemSpinner
}
override fun getLayoutRes(): Int {
return R.layout.item_select
}
override fun bindView(holder: ViewHolder, payloads: MutableList<Any>?) {
super.bindView(holder, payloads)
val spinnerAdapter = ArrayAdapter<String>(holder.context, android.R.layout.simple_spinner_item)
spinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
spinnerAdapter.addAll(list)
holder.spinner.adapter = spinnerAdapter
holder.spinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
override fun onItemSelected(parent: AdapterView<*>, view: View, position: Int, id: Long) {
}
override fun onNothingSelected(parent: AdapterView<*>) {
}
}
}
override fun unbindView(holder: ViewHolder) {
super.unbindView(holder)
}
override fun getViewHolder(v: View): ViewHolder {
return ViewHolder(v)
}
class ViewHolder(view: View) : RecyclerView.ViewHolder(view) {
val spinner: Spinner = view.itemSpinner
val context: Context = view.context
}
}
试试这个
yourSpinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(Spinner parent, View view,
int position, long id) {
}
});
试试这个
yourSpinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(Spinner parent, View view,
int position, long id) {
}
});
错误很明显,您必须使用setOnItemClickListener返回单击项的索引
setOnClickListener
用于
注册在单击此视图时要调用的回调。如果此视图不可单击,则它将变为可单击
和setOnItemClickListener
注册在单击此AdapterView中的项时要调用的回调
因此,请尝试:
spinner.setOnItemClickListener(
{parent, view, position, id -> "Item $position clicked" })
错误很明显,您必须使用setOnItemClickListener返回单击项的索引
setOnClickListener
用于
注册在单击此视图时要调用的回调。如果此视图不可单击,则它将变为可单击
和setOnItemClickListener
注册在单击此AdapterView中的项时要调用的回调
因此,请尝试:
spinner.setOnItemClickListener(
{parent, view, position, id -> "Item $position clicked" })
我添加StackTrace如果添加spinner.setOnTouchlistener(此);,会发生什么?同样的错误。我删除了侦听器的代码,但仍然得到相同的错误。也许回收者看到了一些混乱的东西。也许你可以发布仍然崩溃的更新代码。我添加StackTrace如果你添加spinner.setOnTouchlistener(这个)?同样的错误。我删除了侦听器的代码,但仍然得到相同的错误。也许回收者看到了一些乱七八糟的东西。也许你可以发布更新后仍然崩溃的代码。