如何在用户单击时禁用和启用 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 照上面的方法做,这有帮助。
我正在开发一个 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 照上面的方法做,这有帮助。