0

我有与开关盒一起使用的条件微调器。即 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) {
    }
});
4

0 回答 0