2016-04-08 12 views
1

Ich bin ziemlich neu in Android und habe ein Problem beim Lesen mehrerer SeekBar Doppelwerte in JSONArray. Der Code, den ich für ints habe (ich habe andere Teile, die auf diese Weise funktionieren), aber ich kann es irgendwie nicht mit einem doppelten Wert arbeiten lassen.JSONArray liest nicht doppelt von SeekBar

Ich habe nach Antworten gesucht, aber konnte nicht ganz finden, wonach ich suchte und es beheben.

Die Daten müssen aus der Datei MainActivity in die Klasse Conclusion gelesen werden.

MainActivity.java

public void conclusion(View view){ 
    Intent intent = new Intent(MainActivity.this, Conclusion.class); 

    intent.putExtra("s", (seekBar.getProgress()/4)); 
    intent.putExtra("s2", (seekBar2.getProgress()/4)); 
    intent.putExtra("s3", (seekBar3.getProgress()/4)); 
    intent.putExtra("s4", (seekBar4.getProgress()/4)); 
    intent.putExtra("s5", (seekBar5.getProgress()/4)); 
    intent.putExtra("s6", (seekBar6.getProgress()/4)); 
    intent.putExtra("s7", (seekBar7.getProgress()/4)); 
    intent.putExtra("s8", (seekBar8.getProgress()/4)); 
    intent.putExtra("s9", (seekBar9.getProgress()/4)); 

    startActivity(intent); 
} 

Conclusion.java

double seekBar = getIntent().getDoubleExtra("s", 0); 
    double seekBar2 = getIntent().getDoubleExtra("s2", 0); 
    double seekBar3 = getIntent().getDoubleExtra("s3", 0); 
    double seekBar4 = getIntent().getDoubleExtra("s4", 0); 
    double seekBar5 = getIntent().getDoubleExtra("s5", 0); 
    double seekBar6 = getIntent().getDoubleExtra("s6", 0); 
    double seekBar7 = getIntent().getDoubleExtra("s7", 0); 
    double seekBar8 = getIntent().getDoubleExtra("s8", 0); 
    double seekBar9 = getIntent().getDoubleExtra("s9", 0); 

und JSONArray im Conclusion.java beide sind in der onCreate() Methode

JSONArray jscales= new JSONArray(); 
    jscales.put(seekBar); 
    jscales.put(seekBar2); 
    jscales.put(seekBar3); 
    jscales.put(seekBar4); 
    jscales.put(seekBar5); 
    jscales.put(seekBar6); 
    jscales.put(seekBar7); 
    jscales.put(seekBar8); 
    jscales.put(seekBar9); 

Ich habe versucht, die Berechnung zu verschiedenen Teilen zu verschieben, aber ohne Erfolg. Ich weiß, dass das JSONArray in der Lage sein sollte, ein Double zu lesen, so dass das nicht das Problem sein kann.

Wie kann ich diesen doppelten Wert in JSONArray lesen?

+0

Welche Ergebnisse bekommst du – peter

+0

Es gibt keine Ergebnisse, wenn ich es so versuche. Es sagt nur, wenn ich über den jscales.put (seekBar) schwebe, dass ich eine unbehandelte Ausnahme habe: JSONException. Wenn ich alle Ints verwende, funktioniert es, aber es muss ein Double sein. – Obliviate

+0

Problem ist, wenn ich versuche, den Fehler zu fangen, zeigt es auch nichts. Es gibt nur den Wert 0. – Obliviate

Antwort

0

Übergeben Sie Ihr Ergebnis, das Sie an die Intent.putExtra() -Methode übergeben, an einen doppelten Datentyp oder verwenden Sie stattdessen Intent.putDouble(). So:

 intent.putExtra("s", ((double)seekBar.getProgress()/

4)); weil du versuchst, ein Doppel zu bekommen, während du einen int

eingibst
+0

Vielen Dank! Das war in der Tat das Problem, es funktioniert jetzt. Ich habe versucht, Ihre Antwort zu verbessern, aber es heißt, nachdem ich insgesamt 15 Reputation verdient habe, wird es die öffentlich angezeigte Post-Punktzahl ändern. – Obliviate