有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java微调器项选择相互覆盖

我的代码中有15个微调器,它们应该从我已经创建的数组中获取值。代码如下所示

private double[] grade_values = {-100000.0, 5.0, 4.0, 3.0, 2.0, 1.0, 0.0};

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.ece_second_year_second_semester);

        spinner_ids = new int[15];
        spinner_check = 0;
        spinner_index = 0;

        String[] grades = getResources().getStringArray(R.array.grades);

        spinner0 = (Spinner) findViewById(R.id.spinner0);
        spinner1 = (Spinner) findViewById(R.id.spinner1);
        spinner2 = (Spinner) findViewById(R.id.spinner2);
        spinner3 = (Spinner) findViewById(R.id.spinner3);
        spinner4 = (Spinner) findViewById(R.id.spinner4);
        spinner5 = (Spinner) findViewById(R.id.spinner5);
        spinner6 = (Spinner) findViewById(R.id.spinner6);
        spinner7 = (Spinner) findViewById(R.id.spinner7);
        spinner8 = (Spinner) findViewById(R.id.spinner8);
        spinner9 = (Spinner) findViewById(R.id.spinner9);

        extraSpinner0 = (Spinner) findViewById(R.id.extra_spinner0);
        extraSpinner1 = (Spinner) findViewById(R.id.extra_spinner1);
        extraSpinner2 = (Spinner) findViewById(R.id.extra_spinner2);
        extraSpinner3 = (Spinner) findViewById(R.id.extra_spinner3);
        extraSpinner4 = (Spinner) findViewById(R.id.extra_spinner4);

        spinner0.setOnItemSelectedListener(this);
        spinner1.setOnItemSelectedListener(this);
        spinner2.setOnItemSelectedListener(this);
        spinner3.setOnItemSelectedListener(this);
        spinner4.setOnItemSelectedListener(this);
        spinner5.setOnItemSelectedListener(this);
        spinner6.setOnItemSelectedListener(this);
        spinner7.setOnItemSelectedListener(this);
        spinner8.setOnItemSelectedListener(this);
        spinner9.setOnItemSelectedListener(this);

        extraSpinner0.setOnItemSelectedListener(this);
        extraSpinner1.setOnItemSelectedListener(this);
        extraSpinner2.setOnItemSelectedListener(this);
        extraSpinner3.setOnItemSelectedListener(this);
        extraSpinner4.setOnItemSelectedListener(this);

        each_grade = new ArrayAdapter<>(this, 安卓.R.layout.simple_spinner_item, grades);

        each_grade.setDropDownViewResource(安卓.R.layout.simple_spinner_dropdown_item);

        spinner0.setAdapter(new NothingSelectedSpinnerAdapter(each_grade, R.layout.contact_spinner_row_nothing_selected,this));
        spinner1.setAdapter(new NothingSelectedSpinnerAdapter(each_grade, R.layout.contact_spinner_row_nothing_selected,this));
        spinner2.setAdapter(new NothingSelectedSpinnerAdapter(each_grade, R.layout.contact_spinner_row_nothing_selected,this));
        spinner3.setAdapter(new NothingSelectedSpinnerAdapter(each_grade, R.layout.contact_spinner_row_nothing_selected,this));
        spinner4.setAdapter(new NothingSelectedSpinnerAdapter(each_grade, R.layout.contact_spinner_row_nothing_selected,this));
        spinner5.setAdapter(new NothingSelectedSpinnerAdapter(each_grade, R.layout.contact_spinner_row_nothing_selected,this));
        spinner6.setAdapter(new NothingSelectedSpinnerAdapter(each_grade, R.layout.contact_spinner_row_nothing_selected,this));
        spinner7.setAdapter(new NothingSelectedSpinnerAdapter(each_grade, R.layout.contact_spinner_row_nothing_selected,this));
        spinner8.setAdapter(new NothingSelectedSpinnerAdapter(each_grade, R.layout.contact_spinner_row_nothing_selected,this));
        spinner9.setAdapter(new NothingSelectedSpinnerAdapter(each_grade, R.layout.contact_spinner_row_nothing_selected,this));

        extraSpinner0.setAdapter(new NothingSelectedSpinnerAdapter(each_grade, R.layout.contact_spinner_row_nothing_selected, this));
        extraSpinner1.setAdapter(new NothingSelectedSpinnerAdapter(each_grade, R.layout.contact_spinner_row_nothing_selected, this));
        extraSpinner2.setAdapter(new NothingSelectedSpinnerAdapter(each_grade, R.layout.contact_spinner_row_nothing_selected, this));
        extraSpinner3.setAdapter(new NothingSelectedSpinnerAdapter(each_grade, R.layout.contact_spinner_row_nothing_selected, this));
        extraSpinner4.setAdapter(new NothingSelectedSpinnerAdapter(each_grade, R.layout.contact_spinner_row_nothing_selected, this));

    }

用“extra”命名的微调器的可见性设置为GONE,但我有一个按钮,使每个微调器一次可见。i、 e按下一个额外按钮,按下两次,另一个加入第一个额外按钮,依此类推,直到完成五个额外按钮

选择的方法如下:

 @Override
    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {

        int b = parent.getId();
        if (spinner_index < 15) {
            spinner_ids[spinner_index] = b;
            spinner_index++;

        }    
        setSpinner(b, position);
    }

    public void setSpinner(int spin_id, int value) {

        if (spin_id == spinner_ids[0])
            gpa_grade_0 = grade_values[value];
        else if (spin_id == spinner_ids[1])
            gpa_grade_1 = grade_values[value];
        else if (spin_id == spinner_ids[2])
            gpa_grade_2 = grade_values[value];
        else if (spin_id == spinner_ids[3])
            gpa_grade_3 = grade_values[value];
        else if (spin_id == spinner_ids[4])
            gpa_grade_4 = grade_values[value];
        else if (spin_id == spinner_ids[5])
            gpa_grade_5 = grade_values[value];
        else if (spin_id == spinner_ids[6])
            gpa_grade_6 = grade_values[value];
        else if (spin_id == spinner_ids[7])
            gpa_grade_7 = grade_values[value];
        else if (spin_id == spinner_ids[8])
            gpa_grade_8 = grade_values[value];
        else if (spin_id == spinner_ids[9])
            gpa_grade_9 = grade_values[value];
        else if (spin_id >= spinner_ids[10])
            new_gpa_grade_0 = grade_values[value];
        else if (spin_id >= spinner_ids[11])
            new_gpa_grade_1 = grade_values[value];
        else if (spin_id >= spinner_ids[12])
            new_gpa_grade_2 = grade_values[value];
        else if (spin_id >= spinner_ids[13])
            new_gpa_grade_3 = grade_values[value];
        else
            new_gpa_grade_4 = grade_values[value];

    }

现在的问题是,当我添加一个extraSpinner时,它会正确地接收值。但是,当我添加另一个时,前一个将不再工作,因为这个新的将获取该值。达到gpa_9级的“else-if”语句运行良好,但对于新的_gpa_级,最后添加的语句会使之前添加的语句停止运行并给出错误答案

任何关于如何设置onItemSelectedListener或修复我的代码的更好想法都将不胜感激。谢谢

如果你不明白我的问题,请告诉我,这样我可以重新措辞


共 (0) 个答案