【发布时间】:2018-09-13 10:09:29
【问题描述】:
我正在使用两个微调器,其中第二个微调器值基于第一个微调器值。
例如,如果用户在 First Spinner 中选择选项 A,则 Second Spinner 下拉列表必须包含值(ox、cow、goat),如果用户选择选项 B,则第二个 Spinner 值必须包含(Lion、Tiger 和 Cheetha)。
但我做不到。在第一个微调器值中选择任何值时,第二个微调器始终加载相同的值。下面是截图
如您所见,在第一个微调器大师或文凭中选择任何选项...在第二个微调器值是相同的。它不会改变。
下面是我的活动代码
public class UploadBook extends AppCompatActivity
Spinner spinnerCountry,spinnerDivision,spinner_condition;
ArrayAdapter<String> countryArray,divisionArray;
String item = "start";
int count = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_upload_book);
getSupportActionBar().setTitle("Upload book");
spinnerCountry = (Spinner) findViewById(R.id.spinnerCountry);
//implementing OnItemSelectedListener (need to override the method)
spinnerCountry.setOnItemSelectedListener(this);
countryArray = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item);
countryArray.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinnerCountry.setAdapter(countryArray);
countryArray.add("Master");
countryArray.add("Diploma");
countryArray.setNotifyOnChange(true);
spinnerCountry.setSelection(0);
spinnerDivision = (Spinner) findViewById(R.id.spinnerDivision);
//implementing OnItemSelectedListener (need to override the method)
spinnerDivision.setOnItemSelectedListener(this);
divisionArray = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item);
divisionArray.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinnerDivision.setAdapter(divisionArray);
}
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
item = parent.getItemAtPosition(position).toString();
count = position;
//first spinner item position
int countrySpinnerPosition = spinnerCountry.getSelectedItemPosition();
switch (countrySpinnerPosition){
case 1:
//fill data for second spinner
fillMasterDivision();
break;
case 2:
//fill data for second spinner
fillDiplomaDivision();
break;
}
}
private void fillMasterDivision() {
divisionArray.clear();
divisionArray.add("Select Subject:-");
divisionArray.add("MSC Physics");
divisionArray.add("MSC Chemistry");
divisionArray.notifyDataSetChanged();
}
private void fillDiplomaDivision() {
divisionArray.add("Select Subject:-");
divisionArray.add("Science");
divisionArray.add("CTEVT");
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
请帮忙。
【问题讨论】:
-
您似乎没有使用正确的方法调用。在
onItemSelected的switch中,您使用的是fillBachelorDivision和fillMasterDivision。 -
@BirendraSingh 那么我该如何使用它...我遵循了随机博客中的一个教程,它在那里工作,但是当我在我的应用程序中实现时......它没有。
-
看起来你是想打电话给
fillDiplomaDivision而不是fillBachelorDivision. -
对不起,我已经编辑了我的问题..现在请检查
标签: java android android-spinner