gpt4 book ai didi

android - Spinner 的 getSelectedItemPosition() 方法返回意外结果

转载 作者:行者123 更新时间:2023-11-29 15:24:01 25 4
gpt4 key购买 nike

我的应用有一个微调器,其中有四个条目。我需要能够检索选择了哪些标签,而不是实际标签本身。以下是我执行此操作的部分代码:

// 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
}

无论我选择了 Spinner 的哪个项目,此方法似乎总是返回 42。谁能帮我弄清楚为什么?谢谢!

最佳答案

在你的 switch-case 条件中放置一个break

switch(payPeriod.getSelectedItemPosition()) { 

case(0): // Daily
dailyAllowance = Float.parseFloat(payment.getText().toString());
break;

case(1): // Weekly
dailyAllowance = (Float.parseFloat(payment.getText().toString())) / 7;
break;

case(2): // Bi-weekly
dailyAllowance = (Float.parseFloat(payment.getText().toString())) / 14;
break;

case(3): // 30 days
dailyAllowance = (Float.parseFloat(payment.getText().toString())) / 30;
break;

case(Spinner.INVALID_POSITION):
dailyAllowance = 0;
break;
default:
dailyAllowance = 42; // Junk value, for debugging purposes
break;
}

在 switch-case 条件中省略 break 可能会产生错误的行为。如果选择了 case(没有 break),流程仍然继续,并且始终执行 default 条件。

关于android - Spinner 的 getSelectedItemPosition() 方法返回意外结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14844526/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com