1
我的应用程序有一个微调器,其中有四个条目。我需要能够检索哪些标签被选中,而不是实际的标签本身。下面是我这样做的部分代码:Spinner的getSelectedItemPosition()方法返回意外的结果
// Set up the activity's Spinner
spinnerAdapter = ArrayAdapter.createFromResource(this, R.array.pay_periods, android.R.layout.simple_spinner_item);
spinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
Spinner s = (Spinner) findViewById(R.id.main_spinner_payperiod);
s.setAdapter(spinnerAdapter);
在以后的方法:
switch(payPeriod.getSelectedItemPosition()){
case(0): // Daily
dailyAllowance = Float.parseFloat(payment.getText().toString());
case(1): // Weekly
dailyAllowance = (Float.parseFloat(payment.getText().toString()))/7;
case(2): // Bi-weekly
dailyAllowance = (Float.parseFloat(payment.getText().toString()))/14;
case(3): // 30 days
dailyAllowance = (Float.parseFloat(payment.getText().toString()))/30;
case(Spinner.INVALID_POSITION):
dailyAllowance = 0;
default:
dailyAllowance = 42; // Junk value, for debugging purposes
}
这种方法似乎总是返回42,无论哪个Spinner的项目我已经选择。任何人都可以帮我弄清楚为什么?谢谢!
我已经看到了一些成功使用switch-case语句的break和一些没有。你能解释为什么吗? – Argus9 2013-02-13 00:40:12
更新了答案 – Geros 2013-02-13 00:47:54
很好的答案,谢谢! – Argus9 2013-02-13 00:51:26