嗨我在微调器中有三个项目,并根据所选项目进行一些计算并显示用户。对于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
}
});}
答案 0 :(得分:0)
switch-case
不支持基于范围的条件,因此您只需使用break
中的default
和switch-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}}以检查指定范围内的号码