gpt4 book ai didi

java - 整数数组开关Android JAva

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:02:13 24 4
gpt4 key购买 nike

我正在尝试做一个简单的转换单位应用程序。我有 2 个微调器,其中一个包含一个表示不同类型单位的数组。

当我根据在两个微调器中选择的内容按下“转换”按钮时,应该会做一些事情。

示例:旋转器 1 - 选择 POUNDS US/Spinner2 - 选择千克当我按下转换按钮时,它们会转换它并显示在另一个文本框中。

我的问题是我每次都必须检查每个微调器中选择的内容...这将是很多 if, else if 语句,我希望我是否可以使用带有 Integer 的开关来做到这一点大批。这是我的代码,可以更深入地理解它。

private void mass() {
num = (Double.parseDouble(input.getText().toString()));

int position1 = sInput.getSelectedItemPosition();
int position2 = sResult.getSelectedItemPosition();
int[] position = new int[] {position1, position2};

if(position[0] == 1 && position[1] == 6) {
setValue((Double.toString(round(num / 2.2))));
} else if(position1 == 6 && position2 == 1) {
setValue((Double.toString(round(num * 2.2))));
}
}

数组位置保存在微调器中选择的值。有没有一种方法可以使用类似 position[0,0]、position[0,1] 等的东西来执行 switch 语句,或者比这更好的方法?

最佳答案

例如,为了在不同单位之间转换质量,我会通过一个中间单位。

例如。假设我有以下内容

final int TYPE_KG = 0;
final int TYPE_POUNDS = 1;

// these two values come from your spinners
int sourceUnitType; // eg 0=kg, 1=pounds, ...
int destUnitType; // same types as the source unit type

然后您可以使用函数将源数字转换为您的中间单位,例如千克

double convertMassToKg(int sourceUnitType, double source)
{
switch (sourceUnitType)
{
case TYPE_KG:
return source;
case TYPE_POUND:
return source * 0.453592;
}
}

然后将中间值转换成目标单位

double convertKgToMass(int destinationUnitType, double kilos)
{
switch (destinationUnitType)
{
case TYPE_KG:
return kilos;
case TYPE_POUND:
return kilos / 0.453592;
}
}

无论如何,这只是我对这个问题的看法。您的微调器可以采用什么值?因为让某人尝试将千米转换为公斤是没有意义的,所以取决于您如何分解程序(即这种形式是否仅用于转换质量?)那么也许您可以采用一些不同的方法。

您可以让用户在第一个微调器中选择源类型,然后仅使用有意义的类型更新第二个微调器,例如,如果第一个微调器选择为“公里”,那么第二个微调器可以有选项“英里”、“厘米”、“码”等

关于java - 整数数组开关Android JAva,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16704924/

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