为了账号安全,请及时绑定邮箱和手机立即绑定

无法根据第一个微调器值获得第二个微调器值

无法根据第一个微调器值获得第二个微调器值

喵喵时光机 2021-09-15 17:27:17
我正在使用两个微调器,其中第二个微调器值基于第一个微调器值。例如,如果用户在 First Spinner Then Second Spinner 下拉列表中选择选项 A 必须包含值( ox, cow, goat ),如果用户选择选项 B,则第二个 Spinner 值必须包含( Lion, Tiger 和 Cheetha )。但我无能为力。在第一个微调器值中选择任何值时,第二个微调器总是加载相同的值。下面是截图如您所见,在选择第一个微调大师或文凭中的任何选项时...在第二个微调器中的值是相同的。它不会改变。
查看完整描述

3 回答

?
梦里花落0921

TA贡献1772条经验 获得超6个赞

您的代码中有两个错误。

  1. 对于您的案例,CountrySpinnerPosition 将是 0 和 1,因此案例应该是“案例 0”和“案例 1”。

  2. 在fillDiplomaDivision 方法中,您必须先清除列表,然后在添加到列表后调用notifyDataSetChanged()。


查看完整回答
反对 回复 2021-09-15
?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

尝试在第二种方法中清除 arraylist 和 notifydatasetchanged


    private void fillDiplomaDivision() {

    divisionArray.clear();

    divisionArray.add("Select Subject:-");

    divisionArray.add("Science");

    divisionArray.add("CTEVT");


    divisionArray.notifyDataSetChanged();

}


查看完整回答
反对 回复 2021-09-15
?
POPMUISE

TA贡献1765条经验 获得超5个赞

首先,您onItemSelected对两个微调器使用相同的方法。所以删除spinnerCountry.setOnItemSelectedListener(this);和 spinnerDivision.setOnItemSelectedListener(this);


将数据设置为 spinnerCountry 后,请使用 this 。


spinnerCountry.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

            @Override

            public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {

              if(i == 0){

                fillMasterDivision();

              }else{

                fillBachelorDivision();

              }


            }


            @Override

            public void onNothingSelected(AdapterView<?> adapterView) {



            }

        });

并清除您的 Division 数组 fillBachelorDivision()


查看完整回答
反对 回复 2021-09-15
  • 3 回答
  • 0 关注
  • 168 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信