Ausführen von unterschiedlichen Operationen anhand der Versionsnummer

  • Antworten:3
  • Bentwortet
Frederic
  • Forum-Beiträge: 2

07.04.2012, 12:10:07 via Website

Hallo Community,

Zu Beginn erstmal ein großes Lob, da ich dieses Forum echt klasse finde! ;)
Ich bin neu hier (und auch im Bereich der Android Programmierung) und habe auch gleich eine Frage.
Ich habe bereits viel gesucht, jedoch leider keine passenden Resultate gefunden.

Folgendes Problem lässt mir momentan keine Ruhe:
Ich möchte, je nach Android Version, verschiedene Operationen ausführen, da Teile meines Quelltextes nicht in Versionen kleiner als 4.0 funktionieren. Dazu habe ich folgende if-Anweisung erstellt.

1String vers = Build.VERSION.RELEASE;
2 float vers_float = Float.parseFloat(vers);
3
4
5
6 if (vers_float < 4.0)
7
8 { mache dies }
9 else
10 { mache das }

In der Variable "vers" wird die Versionsnummer des Android-Systems, auf dem die App ausgeführt wird, gespeichert. Danach wird der String in eine float Variable "vers_float" umgewandelt, um anschließend eine if-Anfrage durchführen zu können. Soweit meine Theorie. Leider stürzt die App jedoch immer mit einem Fehler ab.

Woran kann das liegen? Ohne diese if-Anweisung hat die App einwandfrei funktioniert. Über Antworten würde ich mich sehr freuen.
Im Voraus Vielen Dank für eure Hilfe!

Gruß Frederic

Antworten
Carsten M.
  • Forum-Beiträge: 33.204

07.04.2012, 12:30:34 via App

Was für ein Fehler?

Herzliche Grüße

Carsten

Ich komm' mir langsam vor wie jemand, der ich bin // #cäthe

Antworten
Gelöschter Account
  • Forum-Beiträge: 5.136

07.04.2012, 12:52:43 via Website

Lass die Zeile "float vers_float = Float.parseFloat(vers);" mal weg und gib statt dessen folgendes hin:

Log.i("Dein App Name", "meine Release Nummer: "+ vers);

Schau Dir an, was im Log ausgegeben wird und überlege ob eine Umwandlung in ein "Float" damit überhaupt funktionieren kann.

lg Voss

Antworten
Frederic
  • Forum-Beiträge: 2

07.04.2012, 15:56:44 via Website

Yeah, jetzt klappt's.
Gleich was neues gelernt. "Log.i" kannte ich noch nicht, ist aber verdammt praktisch.
Und nein... eine Umwandlung kann ohne weitere Verarbeitung nicht klappen weil's keine reinen Ziffern sind, das war mir vorher nicht bewusst ;)
Danke für die Hilfe, ich habe das Problem jetzt wie folgt gelöst:

1String vers = Build.VERSION.RELEASE;
2 String vers_erstesZeichen = vers.substring(0, 1);
3 int vers_ersteZiffer = Integer.parseInt(vers_erstesZeichen);
4
5 if (vers_ersteZiffer < 4)
6 { mache dies }
7 else
8 { mache das }

Dadurch wird lediglich die erste Ziffer in einem String gespeichert und diese kann ich dann ohne Probleme umwandeln.

Vielen, vielen Dank für die sehr schnelle Hilfe!

Gruß
Frederic

Antworten