0

スイッチケースと一緒に使用している条件付きスピナーがあります。つまり、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 文でvoidintonItemSelectedに変更すると「互換性のない戻り値の型を使用しようとしています」と出ます。

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) {
    }
});
4

0 に答える 0