1

我的应用程序在每个活动上都有 4-5 个 EditText,我有 10 个左右的活动。我需要将这些中的每一个解析为双精度。所以我想我想创建一个方法,在该方法中我输入一个 EditText 数组,它返回一个带有解析数字的双精度数组。

其中一个 EditText 将始终为空,因此我需要在应该返回为 0 的 Doubles 数组中的特定位置。

这就是我一直在摆弄的东西(到目前为止没有成功)。

public double[] parser(EditText[] editArray) {
            EditText toBeParsed[] = null;
            double parsed[] = null;
            for (int i = 0; i < editArray.length; i++) {
                try {
                    parsed[i] = Double.parseDouble(toBeParsed[i].getText().toString());
                } catch (Exception e) {
                    parsed[i] = 0;}
            }

我需要设置这个吗?

接下来在我的一项活动中,我在其中调用方法(来自 MiscMethods.java 文件)

EditText inputs[] = {i1,i2,i3,i4}
Double parsed[];
for (int i = 0; i < inputs.length; i++) {
                parsed[i] = MiscMethods.parser(inputs);
            }

但是得到一个类型不匹配......为什么?该方法返回一个双精度数组,并应将它们放入双精度解析[] 数组中。?

4

1 回答 1

1

似乎您正在使用 toBeParsed 数组而不是您的 editArray

所以

parsed[i] = Double.parseDouble(toBeParsed[i].getText().toString());

应该

parsed[i] = Double.parseDouble(editArray[i].getText().toString());
于 2012-10-15T00:49:20.903 回答