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

Why Android Spinner onItemSelectedListener have two identical params

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

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

positionid有什么区别?

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

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

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