Android:如何从它来的位置找到微调项目

时间:2015-01-12 05:01:43

标签: android android-spinner

嗨我在微调器中有三个项目,并根据所选项目进行一些计算并显示用户。对于3个项目,我有6个不同的计算,我想知道 FROM 项目和项目,以便我可以从值和值获取并进行计算。如何处理这种情况。

下面是简单的开关案例,但没有解决我的方案

 spinner1.setOnItemSelectedListener(new OnItemSelectedListener() {

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

                                  edt1.setVisibility(View.VISIBLE);
                                   edt2.setVisibility(View.GONE);
                                   edt3.setVisibility(View.GONE);
                                    qtyString = edt1.getText().toString();
                                   if(qtyString == null || qtyString.trim().equals("") || qtyString.trim().equals(".")){

                                   }else{
                                       float k = Float.parseFloat(qtyString);
                                       edt1.setText(removeTrailingZeros(poundTokilo(k))); 
                                   }
                                break;               

                            case 1:
                                 edt1.setVisibility(View.VISIBLE);
                                   edt2.setVisibility(View.GONE);
                                   edt3.setVisibility(View.GONE);

                                   if(edt1.getText().toString().equals("") || edt1.getText().toString().equals(".")){

                                   }else{
                                   float qtyString1 = Float.parseFloat(edt1.getText().toString());
                                   edt1.setText(removeTrailingZeros(kiloTopound(qtyString1)));
                                   }
                                break;     

                            case 2:
                                edt1.setVisibility(View.GONE);
                                edt2.setVisibility(View.VISIBLE);
                                edt3.setVisibility(View.VISIBLE);
                                if(edt1.getText().toString().equals("")){

                                   }else{      
                                float qtyString2 = Float.parseFloat(edt1.getText().toString());
                                edt2.setText(removeTrailingZeros(kiloTostomepound(qtyString2).get(0).get(STONE)));
                                edt3.setText(removeTrailingZeros(kiloTostomepound(qtyString2).get(0).get(STONEPOUND)));
                                   }
                                break;     
                        } 

                    }

                    @Override
                    public void onNothingSelected(AdapterView<?> parent) {
                        // TODO Auto-generated method stub

                    }
                });}

1 个答案:

答案 0 :(得分:0)

switch-case不支持基于范围的条件,因此您只需使用break中的defaultswitch-case中的switch (position) { case 1: case 2:case 3: // executed when position is from 1 to 3 break; default: // executed when position is not from 1 to 3 } 即可实现相同目标:

false

创建一个方法,当position不在1到3之间时返回if-else,然后根据条件使用public boolean isNumInRange(int number, int from, int to) { return from <= number && number <= to; } 梯形图执行代码:

isNumInRange(number,2,3)

现在请致电{{1}}以检查指定范围内的号码