Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/211.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android回收器视图中微调器中的OnClickItemListener_Android_Kotlin_Spinner - Fatal编程技术网

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(这个)?同样的错误。我删除了侦听器的代码,但仍然得到相同的错误。也许回收者看到了一些乱七八糟的东西。也许你可以发布更新后仍然崩溃的代码。