为啥 Android Spinner onItemSelectedListener 有两个相同的参数

Posted

技术标签:

【中文标题】为啥 Android Spinner onItemSelectedListener 有两个相同的参数【英文标题】:Why Android Spinner onItemSelectedListener have two identical params为什么 Android Spinner onItemSelectedListener 有两个相同的参数 【发布时间】:2019-02-19 14:48:08 【问题描述】:

谁能解释一下为什么 onItemSelected() 方法同时具有 positionid 参数?

首先我阅读了文档并没有理解其中的区别。然后我尝试在调试中观察这两个参数,它们总是具有完全相同的值。我也无法在谷歌中找到该问题的答案,所以我最后的手段是 ***。

positionid有什么区别?

spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() 
        @Override
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) 
        

        @Override
        public void onNothingSelected(AdapterView<?> parent) 
        
    );

【问题讨论】:

【参考方案1】:

这两个参数可能具有不同的值,具体取决于基础数据的存储方式。对于ArrayAdapter,它们可能相同。但是,对于 CursorAdapterpositionSpinner 下拉列表中的位置,id 是数据库表中的主键。

【讨论】:

以上是关于为啥 Android Spinner onItemSelectedListener 有两个相同的参数的主要内容,如果未能解决你的问题,请参考以下文章

android中的Spinner里的字体大小为啥改不掉?

Onitem 单击功能以在 android 中联系应用程序

为啥 Spinner 中的第一项不起作用

Android-spinner

android 的spinner控件点击不能显示选中数据

Android控件之Spinner简单使用