Bom dia amigos, estou tentando converter 2 array de string para 2 numeros e depois somar os dois, e o resultado ir para um textview, mas devo estar fazendo algo errado, alguem poderia me ajudar ?
Desde já obrigado…
private void ativaTimer(){
task = new TimerTask() {
public void run() {
handler.post(new Runnable() {
public void run() {
//Log.w("Data Atual", simpleFormat.format( new Date( System.currentTimeMillis())));
Date tempoAtual = new Date();
Htotal = (new SimpleDateFormat("HH:mm").format(tempoAtual));
try {
Htotal = String.valueOf(diferencaTempo(Hinicio,Htotal));
Log.w("Tempo Atual", Htotal);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//txtValor.setText(String.valueOf(diferencaTempo(Hinicio,Htotal)));
//Pega valores dos spinners tarefa e visita
String svTarefa = sptarefa.getSelectedItem().toString();
String svVisita = spvisita.getSelectedItem().toString();
String[] sTarefa = svTarefa.split(" - ");
String vTarefa = sTarefa[1];
String[] sVisita = svVisita.split(" - ");
String vVisita = sVisita[1];
Log.w("Valor Atual", vTarefa+vVisita);
Toast.makeText(getBaseContext(), vTarefa+vVisita, Toast.LENGTH_SHORT).show();
//vVisita = vVisita.replace(".", ",");
//vTarefa = vTarefa.replace(".", ",");
Log.w("Valor Atual2", vVisita);
Log.w("Valor Atual3", vTarefa);
//AQUI TA O PROBLEMA
double num1 = Double.parseDouble(vTarefa);
double num2 = Double.parseDouble(vVisita);
double resultado = num1+num2;
//AQUI TA O PROBLEMA
Log.w("Valor Atual1", String.valueOf(resultado));
//txtValor.setText(String.valueOf(total1));
}
});
}};
//Executa o metodo run() a cada 3 segundos
timerAtual.schedule(task, 3000, 3000);
}
este o erro
12-19 11:46:16.439: E/AndroidRuntime(7388): FATAL EXCEPTION: main
12-19 11:46:16.439: E/AndroidRuntime(7388): java.lang.NumberFormatException
12-19 11:46:16.439: E/AndroidRuntime(7388): at org.apache.harmony.luni.util.FloatingPointParser.parseDblImpl(Native Method)
12-19 11:46:16.439: E/AndroidRuntime(7388): at org.apache.harmony.luni.util.FloatingPointParser.parseDouble(FloatingPointParser.java:283)
12-19 11:46:16.439: E/AndroidRuntime(7388): at java.lang.Double.parseDouble(Double.java:318)
12-19 11:46:16.439: E/AndroidRuntime(7388): at personal.tech.Atendimento$1$1.run(Atendimento.java:183)
12-19 11:46:16.439: E/AndroidRuntime(7388): at android.os.Handler.handleCallback(Handler.java:587)
12-19 11:46:16.439: E/AndroidRuntime(7388): at android.os.Handler.dispatchMessage(Handler.java:92)
12-19 11:46:16.439: E/AndroidRuntime(7388): at android.os.Looper.loop(Looper.java:130)
12-19 11:46:16.439: E/AndroidRuntime(7388): at android.app.ActivityThread.main(ActivityThread.java:3835)
12-19 11:46:16.439: E/AndroidRuntime(7388): at java.lang.reflect.Method.invokeNative(Native Method)
12-19 11:46:16.439: E/AndroidRuntime(7388): at java.lang.reflect.Method.invoke(Method.java:507)
12-19 11:46:16.439: E/AndroidRuntime(7388): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:864)
12-19 11:46:16.439: E/AndroidRuntime(7388): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:622)
12-19 11:46:16.439: E/AndroidRuntime(7388): at dalvik.system.NativeStart.main(Native Method)
tem certeza que vVisita e vTarefa possuem valores que podem ser convertidos para número?
se tiver skype me add ae pra trocarmos uma ideia
skype: marcianovc
[quote=marcianovc]se tiver skype me add ae pra trocarmos uma ideia
skype: marcianovc[/quote]
Sinto muito, do trabalho não tenho como fazer isso.
Qual separador decimal voce ta usando? Ponto ou Virgula?
josiloch,
estou usando virgula como separador
o ParceDouble só funciona com ponto.
Consegui resolver o problema da conversão, agora preciso joga o resultado da soma em um TextView, e surgiu outro problema afff…
String svTarefa = sptarefa.getSelectedItem().toString();
String svVisita = spvisita.getSelectedItem().toString();
String[] sTarefa = svTarefa.split(" - ");
String vTarefa = sTarefa[1];
String[] sVisita = svVisita.split(" - ");
String vVisita = sVisita[1];
double num1 = Double.parseDouble(vVisita.toString().replaceAll(",", "."));
double num2 = Double.parseDouble(vTarefa.toString().replaceAll(",", "."));
double resultado = num1+num2;
//Toast.makeText(getBaseContext(), String.valueOf(resultado), Toast.LENGTH_SHORT).show();
//AQUI O PROBLEMA
txtValor.setText(String.valueOf(resultado));
//AQUI O PROBLEMA
12-20 09:02:46.929: E/AndroidRuntime(10632): FATAL EXCEPTION: main
12-20 09:02:46.929: E/AndroidRuntime(10632): java.lang.NullPointerException
12-20 09:02:46.929: E/AndroidRuntime(10632): at personal.tech.Atendimento$1$1.run(Atendimento.java:189)
12-20 09:02:46.929: E/AndroidRuntime(10632): at android.os.Handler.handleCallback(Handler.java:587)
12-20 09:02:46.929: E/AndroidRuntime(10632): at android.os.Handler.dispatchMessage(Handler.java:92)
12-20 09:02:46.929: E/AndroidRuntime(10632): at android.os.Looper.loop(Looper.java:130)
12-20 09:02:46.929: E/AndroidRuntime(10632): at android.app.ActivityThread.main(ActivityThread.java:3835)
12-20 09:02:46.929: E/AndroidRuntime(10632): at java.lang.reflect.Method.invokeNative(Native Method)
12-20 09:02:46.929: E/AndroidRuntime(10632): at java.lang.reflect.Method.invoke(Method.java:507)
12-20 09:02:46.929: E/AndroidRuntime(10632): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:864)
12-20 09:02:46.929: E/AndroidRuntime(10632): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:622)
12-20 09:02:46.929: E/AndroidRuntime(10632): at dalvik.system.NativeStart.main(Native Method)
Tem como voce postar o texto que voce ta injetando neste código?
sptarefa e spvisita são spinners
sptarefa tem um item: Formatacao - 50,00
spvisita tem um item: Normal - 5,00
String svTarefa = sptarefa.getSelectedItem().toString();
String svVisita = spvisita.getSelectedItem().toString();
a principio sua variavel resultado parece estar nula, tenta debugar pra ver.
josiloch, Rodrigo Sasaki, muito obrigado pela ajuda, consegui resolver, tava faltando isto:
txtValor = (TextView)findViewById(R.id.txtValor);
Valeuuuu