微调器onItemSelected()不被调用

佐根

我实现了一个ArrayAdapter以填充我的Spinner视图。Spinner工作正常,但是当我单击微调器中的项目时,android并未检测到。

我所有的要求遵守微调例如在Android文档包括实施AdapterView.OnItemSelectedListener我的活动,并覆盖它的两个方法OnItemSelectedListeneronNothingSelected,但是,没有我的Log那些方法报表打印,使他们不被调用。

我还通过将监听器设置为微调器choose_user.onItemSelectedListener = this@PlayerDetails

这是我的活动:

class PlayerDetails : AppCompatActivity(), View.OnClickListener, TextWatcher, AdapterView.OnItemSelectedListener {
    val TAG: String = "PlayerDetails"
    val FirebaseTAG: String = "FirebaseDebug"

    var numOfPlayers: Int = 1
    var currentPlayer: Int = 1

    var name: String = ""
    var age: Int = 0
    var genderId: Int = 0
    var genderResult: String = ""

    val db = FirebaseFirestore.getInstance()
    var users: MutableList<String> = mutableListOf()

    private lateinit var binding: ActivityPlayerDetailsBinding

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        val sharedPref = [email protected](Context.MODE_PRIVATE)
        val applicationID: String? = sharedPref.getString("applicationID", null)

        binding = DataBindingUtil.setContentView(this, R.layout.activity_player_details)

        if (applicationID != null) {

            db.collection("phones").document(applicationID)
                .collection("users")
                .get()
                .addOnSuccessListener { result ->

                    for (document in result){
                        val name = document.get("name").toString()
                        users.add(name)
                    }
                }

            Log.d(FirebaseTAG, users.toString())
            val spinnerAdaptor = ArrayAdapter<String>(this@PlayerDetails, android.R.layout.simple_spinner_item, users)
            spinnerAdaptor.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
            choose_user?.adapter = spinnerAdaptor
            choose_user.onItemSelectedListener = this@PlayerDetails
        }

        val intent = getIntent()
        numOfPlayers = intent.getIntExtra("number_of_players", 1)
        next_details.setOnClickListener(this)
        player_name.addTextChangedListener(this)
        player_age.addTextChangedListener(this)
        gender.setOnCheckedChangeListener(object: RadioGroup.OnCheckedChangeListener {
            override fun onCheckedChanged(radiogroup: RadioGroup, checked: Int) {
                if (fieldsArePopulated()) next_details.visibility = View.VISIBLE
            }
        })

    }

    override fun onItemSelected(parent: AdapterView<*>?, name: View?, position: Int, rowId: Long) {
        val chosenName: String = parent?.getItemAtPosition(position).toString()
        Log.d("ChosenName", chosenName)
        Log.d("adapterclicked", "adapterclicked")

    }

    override fun onNothingSelected(parent: AdapterView<*>?) {
        Log.d("Nothing", "NOTHINGCALLED")
    }

...

知道是什么问题吗?

另外,当我在微调器中选择一个项目时,微调器旁边的视图也会移动,因此很明显它已被检测到,但onItemSelected()仍未被调用。

佐根

我为usersMutableList设置了一个初始值

var users: MutableList<String> = mutableListOf("Choose User")

现在onItemSelected()被成功调用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

微调器onItemSelected()执行不正确

微调器OnItemSelected与自定义适配器

如何在android中刷新onItemSelected微调器上的片段

Android微调器onItemSelected侦听器无法看到外部值

具有自定义下拉视图的微调器不会触发onItemSelected()

OnItemSelected不适用于自定义微调器适配器类

OnItemSelected不适用于值来自SQLite数据库的自定义微调器

使用微调器的onItemSelected在textview中显示另一个arraylist元素

Android 编程:如何在微调器的 onItemSelected 适配器中永久更改语言

流星在方法调用上显示微调器

在setOnItemSelectedListener()之前调用的onItemSelected()

Android onItemSelected微调框未激活

为什么接收器中的onReceive不被调用?

Swift的属性服务器不被级联调用

在微调器中选择项目时未调用“ setOnItemSelectedListener()”

android:调用notifyDataSetChanged()时微调器不更新我的视图

从带有微调器的单独类中调用SharedPreferences?

通过批处理脚本中的参数调用等待微调器

微调器在调用条目值时引发NullPointerException

当我调用 axios 请求时如何让微调器显示

Spinner OnItemSelected 事件未被调用

不需要的onItemSelected调用

UIPickerView委托不被调用

onStop()不被调用?

UIAlertView委托不被调用?

排球不被调用

onNavigationItemSelected不被调用

片段onCreateView不被调用

animationControllerForPresentedController不被调用