スイッチケースと一緒に使用している条件付きスピナーがあります。つまり、Spinner1-choice1 はオプションとして Spinner2-a/b/c を出力し、Spinner1-choice2 は Spinner2-x/y/z を出力します。親スピナーの選択に一意の int 識別子を割り当てようとしており、親スピナーの出力に基づいて子スピナーを表示するスイッチケースがあります。現在、親スピナーが機能し、selectedCounty の値を表示していますtextview
が、switch ケースで値を読み取ることができません。
これが私のコードのスニペットです:
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 は出力しようとしている変数です。次に、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;
}
私の質問は、switch ケースで使用するために selectedCounty の値を返すにはどうすればよいですか?
こんな感じが欲しいのですが、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) {
}
});