如何在用户单击时禁用和启用Spinner项目

时间:2017-03-21 07:25:12

标签: android android-arrayadapter android-spinner

我正在开发一个Android应用程序,在注册忘记密码之后询问安全问题,总共有10个问题。用户可以选择任何3。 我有3个Spinner 3个问题。一旦用户从第一个微调器中选择问题,第二个和第三个微调器就不应该在它们的列表中有它们。请帮我禁用或从列表中删除它。

活动的屏幕截图

enter image description here

2 个答案:

答案 0 :(得分:0)

我假设您正在为Spinners使用适配器。如果使用ArrayAdapter并且每个适配器都包含相同的项目列表,则只需从列表中删除所选项目并通知适配器进行更新。

答案 1 :(得分:0)

首先,设置布尔检查是否是第一次选择微调器。存储所选项目,以便稍后在问题更改时添加它们。

Boolean ifFirstCheck = true;
String storeItem = "";

然后,使用以下代码:

spinner1.setOnItemSelectedListener(new OnItemSelectedListener() {

            @Override
            public void onItemSelected(AdapterView<?> arg0, View arg1,
                    int arg2, long arg3) {

                   if(!ifFirstCheck){
                       listSp2.add(storeItem);
                       sp2adapter.notifyDataSetChanged();  
                       listSp3.add(storeItem);
                       sp3adapter.notifyDataSetChanged();  
                   }

                   String selectedItem = spinner1.getSelectedItem().toString();
                   listSp2.remove(selectedItem)             // Get selected value from spinner1 and remove thar item from spinner2
                   sp2adapter.notifyDataSetChanged();      // Notify adapter of spinner2 to that dataset has been changed
                   listSp3.remove(selectedItem)
                   sp3adapter.notifyDataSetChanged();

                   storeItem = selectedItem;
                   ifFirstCheck = false;
            }

            @Override
            public void onNothingSelected(AdapterView<?> arg0) {
                // TODO Auto-generated method stub

            }
        });

如上所述对其余的纺纱工具。请帮助。