我有与开关盒一起使用的条件微调器。即 Spinner1-choice1 将输出 Spinner2-a/b/c 作为选项, Spinner1-choice2 将输出 Spinner2-x/y/z。我正在尝试为父微调器的选择分配唯一的 int 标识符,并有一个开关盒来根据父微调器的输出显示子微调器。目前,父微调器工作并在 a 中显示 selectedCounty 的值textview
,但我无法让开关盒读取该值。
这是我的代码片段:
countySpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {
int innerCounty = countySpinner.getSelectedItemPosition();
switch (innerCounty) {
case 0: {
selectedCounty = 20;
break;
}
case 1: {
selectedCounty = 25;
break;
}
case 2: {
selectedCounty = 27;
break;
}
case 3: {
selectedCounty = 43;
break;
}
case 4: {
selectedCounty = 60;
break;
}
case 5: {
selectedCounty = 61;
break;
}
default: {
// selectedCounty = 0;
}
}
countyID.setText(String.valueOf(selectedCounty));
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
如您所见, selectedCounty 是我要输出的变量。然后,我有一个单独的 switch case 来切换 selectedCounty,这是一个片段,例如:
switch (selectedCounty){
....
case 20: {
Toast.makeText(getActivity(),"Crawford",Toast.LENGTH_SHORT).show();
ArrayAdapter<String> Madapter = new ArrayAdapter<String>(getActivity(),
android.R.layout.simple_spinner_item, getResources().getStringArray(R.array.crawford));
Madapter.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
municipalitySpinner.setAdapter(Madapter);
break;
}
我的问题是,我怎样才能返回 selectedCounty 的值以便被 switch case 使用?
我觉得这样的东西是我想要的,但是当我在 for 语句中将void更改为intonItemSelected
时,我得到“尝试使用不兼容的返回类型”
countySpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public **int** onItemSelected(AdapterView<?> parent, View view,
int position, long id) {
int innerCounty = countySpinner.getSelectedItemPosition();
switch (innerCounty) {
case 0: {
selectedCounty = 20;
break;
}
case 1: {
selectedCounty = 25;
break;
}
case 2: {
selectedCounty = 27;
break;
}
case 3: {
selectedCounty = 43;
break;
}
case 4: {
selectedCounty = 60;
break;
}
case 5: {
selectedCounty = 61;
break;
}
default: {
// selectedCounty = 0;
}
}
countyID.setText(String.valueOf(selectedCounty));
**return selectedCounty;**
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});