Обновить ... Разделитель обнаруживается в моем массиве значений, вызванных платформой или эмулятором - PullRequest
0 голосов
/ 01 июня 2011

Когда я отлаживаю код ниже, он сохраняет «,» (разделитель разделителя) в качестве значения в массиве rawData.Когда parseDouble достигает этого значения, я получаю NumberFormatException.Есть идеи?

package com.simplydesign.android.standarddev;

import android.app.Activity;
import android.os.Bundle;
import android.widget.*;
import android.view.*;

public class Main extends Activity {
    /** Called when the activity is first created. */

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        final Button addBtn = (Button) findViewById(R.id.addBtn);
        final EditText userData = (EditText) findViewById(R.id.editText1);
        final TextView dataCollection = (TextView) findViewById(R.id.textView1);

        addBtn.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {

                String[] rawData;
                rawData = userData.getText().toString().split(",");
                dataCollection.setText(calculate(rawData));
            }

        });

    }

    public String calculate(String[] a) {

        double[] convertedData = new double[a.length];
        double sum = 0.0;
        StringBuilder output = new StringBuilder();
        int t = 0;

        for (int f = 0; f<a.length;f++){
        convertedData[f] = Double.parseDouble(a[t]);
        t++;

        }
        for (int k = 0; k < convertedData.length; k++) {
            sum += convertedData[k];
        }
        output.append(sum);
        return output.toString();

    }
}

После долгих проб и ошибок я пришел к выводу, что моя проблема возникла из-за неисправной комбинации платформа / эмулятор.Первоначально для моей платформы проекта было установлено значение 2.1 со значением API 7.

. По какой-то причине это вызывало проблемы, когда я использовал запятую в качестве разделителя.Это также доставляло мне проблемы, когда мои числа имели десятичные точки (десятичные точки выглядели пустыми).

Теперь мой проект установлен на 1.6, и он работает с запятой и десятичными точками.

Хотя я нашел решение, я все еще не понимаю, почему это происходит.Я чувствую, что некоторые приложения, которые я создаю, должны быть на высокой платформе, как минимум 2.5.1.6 подходит для большинства приложений?Любые предложения по этому вопросу будут с благодарностью.

1 Ответ

0 голосов
/ 01 июня 2011

Попробуйте использовать TextUtils.split

...