Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/234.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.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 Spinner duplicate item只提供第一个复制项的位置_Android_Position_Spinner_Android Spinner - Fatal编程技术网

Android Spinner duplicate item只提供第一个复制项的位置

Android Spinner duplicate item只提供第一个复制项的位置,android,position,spinner,android-spinner,Android,Position,Spinner,Android Spinner,我用MySQL中的项目制作了一个微调器。在MySQL中,我有两个值相同的项。在旋转器中,我有两个副本。当我尝试选择第二个时,我得到第一个的位置(这是不正确的),当我选择第一个时,我得到第一个的位置(这是正确的) 代码: sp.setVisibility(View.VISIBLE); //束缚 最终ArrayAdapter=新的ArrayAdapter(c,android.R.layout.simple\u微调器\u下拉菜单\u项,optochtenarray){ @凌驾 公共视图getDropD

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

代码:

sp.setVisibility(View.VISIBLE);
//束缚
最终ArrayAdapter=新的ArrayAdapter(c,android.R.layout.simple\u微调器\u下拉菜单\u项,optochtenarray){
@凌驾
公共视图getDropDownView(int位置、视图转换视图、视图组父视图){
View itemView=super.getDropDownView(位置、转换视图、父级);
如果(位置==mSelectedIndex){
setBackgroundColor(Color.rgb(56184226));
}
否则{
setBackgroundColor(Color.TRANSPARENT);
}
返回项目视图;
}
};
sp.setAdapter(适配器);
//呼叫ID
sp.setOnItemSelectedListener(新的AdapterView.OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView父视图、视图视图、整型位置、长id){
字符串selectedItem=sp.getSelectedItem().toString();
如果(选择编辑项!=“Kies…”){
//克莱尔·韦兰登
mSelectedIndex=sp.getSelectedItemPosition();
Log.e(“selectPosition”,Integer.toString(mSelectedIndex));
Log.e(“ID”,idarray.get(position));
//naar de volgende pagina遇到了“ID”
Intent myIntent=新Intent(c,gekozenpotcht.class);
myIntent.putExtra(“ID”,idarray.get(position));//可选参数
c、 星触觉(myIntent);
sp.setSelection(adapter.getPosition(“Kies…”);
}
}
@凌驾
未选择公共无效(AdapterView父视图){
//你的代码在这里
}
});

为什么我在尝试选择第二个位置时获取第一个位置?

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


警司选举(职位)

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


警司选举(职位)

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

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

使用
selectedItem.equals(“Kies…”)
use
selectedItem.equals(“Kies…”)
我使用了“sp.setSelection(…);”仅用于重置为默认值的“Kies…”不是重复项。我使用了“sp.setSelection(…);”仅用于重置为默认值的“Kies…”不是重复项。
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
        }
    });