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

我正在使用两个微调器,其中第二个微调器值基于第一个微调器值。

例如,如果用户在 First Spinner Then Second Spinner 下拉列表中选择选项 A 必须包含值( ox, cow, goat ),如果用户选择选项 B,则第二个 Spinner 值必须包含( Lion, Tiger 和 Cheetha )。

但我无能为力。在第一个微调器值中选择任何值时,第二个微调器总是加载相同的值。下面是截图

http://img1.mukewang.com/6141bc89000183c605440955.jpg

http://img4.mukewang.com/6141bc9300014b3805400956.jpg

如您所见,在选择第一个微调大师或文凭中的任何选项时...在第二个微调器中的值是相同的。它不会改变。



喵喵时光机
浏览 169回答 3
3回答

梦里花落0921

您的代码中有两个错误。对于您的案例,CountrySpinnerPosition 将是 0 和 1,因此案例应该是“案例 0”和“案例 1”。在fillDiplomaDivision 方法中,您必须先清除列表,然后在添加到列表后调用notifyDataSetChanged()。

鸿蒙传说

尝试在第二种方法中清除 arraylist 和 notifydatasetchanged    private void fillDiplomaDivision() {    divisionArray.clear();    divisionArray.add("Select Subject:-");    divisionArray.add("Science");    divisionArray.add("CTEVT");    divisionArray.notifyDataSetChanged();}

POPMUISE

首先,您onItemSelected对两个微调器使用相同的方法。所以删除spinnerCountry.setOnItemSelectedListener(this);和 spinnerDivision.setOnItemSelectedListener(this);将数据设置为 spinnerCountry 后,请使用 this 。spinnerCountry.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; @Override&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(i == 0){&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; fillMasterDivision();&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }else{&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; fillBachelorDivision();&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; @Override&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; public void onNothingSelected(AdapterView<?> adapterView) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; });并清除您的 Division 数组 fillBachelorDivision()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java