Android Spinner重复项仅提供第一个重复项的位置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android Spinner重复项仅提供第一个重复项的位置相关的知识,希望对你有一定的参考价值。

我用mysql的项目制作了一个微调器。在MySQL中我有2个具有相同值的项目。在旋转器中,我有2个重复。当我尝试选择第二个时,我得到第一个的位置(这是不正确的),当我选择第一个时,我得到第一个的位置(这是正确的)。

码:

sp.setVisibility(View.VISIBLE);

    //BIND
    final ArrayAdapter adapter = new ArrayAdapter(c, android.R.layout.simple_spinner_dropdown_item, optochtenarray){
        @Override
        public View getDropDownView(int position, View convertView, ViewGroup parent) {
            View itemView =  super.getDropDownView(position, convertView, parent);

            if (position == mSelectedIndex) {
                itemView.setBackgroundColor(Color.rgb(56,184,226));
            }
            else {
                itemView.setBackgroundColor(Color.TRANSPARENT);
            }

            return itemView;
        }
    };
    sp.setAdapter(adapter);

    //call ID
    sp.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parentView, View view, int position, long id) {
            String selectedItem = sp.getSelectedItem().toString();

            if (selectedItem != "Kies..."){
                //kleur veranderen
                mSelectedIndex = sp.getSelectedItemPosition();
                Log.e("selectPosition", Integer.toString(mSelectedIndex));

                Log.e("ID", idarray.get(position));
                //naar de volgende pagina met de 'ID'
                Intent myIntent = new Intent(c, gekozenOptocht.class);
                myIntent.putExtra("ID", idarray.get(position)); //Optional parameters
                c.startActivity(myIntent);
                sp.setSelection(adapter.getPosition("Kies..."));
            }
        }

        @Override
        public void onNothingSelected(AdapterView<?> parentView) {
            // your code here
        }
    });

当我尝试选择第二个时,为什么我会获得第一个的位置?

答案

使用position参数或mSelectedIndex变量获取位置。

sp.setSelection(位置);

另一答案

问题解决了!它与我在互联网上找到的自定义微调器有关。

以上是关于Android Spinner重复项仅提供第一个重复项的位置的主要内容,如果未能解决你的问题,请参考以下文章

试图在android中创建一个spinner.OnItemSelectedListener事件[重复]

检索项目的父项时出错:找不到与给定名称“android:Widget.Material.Spinner.Underlined”匹配的资源[重复]

android开发--Spinner

android开发--Spinner

一起Talk Android吧(第四百八十三回:如何修改Spinner的倒三角)

一起Talk Android吧(第四百八十三回:如何修改Spinner的倒三角)