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

How to disable and enable Spinner items on user click

我正在开发一个 android 应用程序,它会在注册后询问安全问题以忘记密码,总共有 10 个问题。用户可以 select 任意 3。 我有 3 个 Spinner 用于 3 个问题。一旦用户 select 来自第一个微调器、第二个和第三个微调器的问题不应该出现在他们的列表中。请帮助我将其禁用或从列表中删除。

activity

的屏幕截图

我假设您使用的是 Spinners 适配器。如果您使用 ArrayAdapter 并且每个适配器都包含相同的项目列表,您可以从列表中删除所选项目并通知适配器更新。

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

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

            }
        });

剩下的 spinners.Hope 照上面的方法做,这有帮助。