App Inventor 2 (Rechenapp erstellen)

B

BounceBaer

Neues Mitglied
0
Hallo zusammen,

ich beschäftige mich gerade mit einem Projekt mit dem App Inventor 2.

Nun bin ich absoluter Neuling was dies betrifft und will mir eine App erstellen mit der ich "Anschaffungskosten" ausrechnen will. Nun muss ich dort einige Zahlen addieren und da nicht immer alle Felder einen Wert haben müssen, will ich diese "ignorieren" wenn diese nicht ausgefüllt sind.

Nun geht das aber nicht von selbst, denn es wird mir immer wieder eine Fehlermeldung ausgegeben.

Nun, wie könnte ich das anstellen, das die Felder ohne Wert entweder ignoriert oder der Wert Null gesetzt wird?

Danke schon im Voraus für eure Hilfe

Mfg
BounceBaer
 
Zuletzt bearbeitet:
Soweit ich das verstanden habe meinst du mit "Felder" die TextEdit-Widgets ? Du musst, wenn du hier im Forum eine Frage stellst, dich möglichst klar ausdrücken sonst versteht man dich nicht :/

Code:
EditText deinEditText = (EditText) findViewById(R.id.editText1); 
String wert = deinEditText.getText().toString(); 

if (wert.equals("")) {     

wert = "0"; 
}
Das sollte deine Frage beantworten.
Bevor das später zum Problem wird, du musst den String noch in einen anderen Datentyp (int, long, float, usw) casten um damit zu rechnen.

Code:
int zahl = Integer.valueOf(wert);
mfg
 
Hallo,

tut mir leid es war wohl gestern doch schon ziemlich spät :/

Also es geht um die genannten Textboxen.

Nun habe ich versucht deinen Code mit den Bausteinen nach zubauen.

Funktioninert leider aber nicht, bzw. ich bin mir definitiv nicht sicher ob ich die richtigen Bausteine genommen habe. ("Button_Berechnen" ist gemeint)
Weiterhin finde ich auch keinen Baustein um den Datentyp zu ändern. Ich kann ja auch von Haus aus nur zahlen eingeben.

Danke schon mal für deine Hilfe!

Mfg
attachment.php
 

Anhänge

  • Unbenannt.png
    Unbenannt.png
    43 KB · Aufrufe: 3.907
Probiers mal mit der Abfrage "is a number"?

attachment.php


Oder du belegst einfach das Textfeld mit 0 vor und erlaubst nur Zahlen als Eingabe.

attachment.php


Wenn das auch nicht funktioniert würde ich die Werte in Variablen zwischenspeichern, die wirklich explizit als Zahl mit dem Wert 0 initialisiert werden. Das Problem bei App Inventor ist, dass dieser die Datentypen selbst festlegt und auch umwandelt. Du musst hier auch mit Komma und Punkt als Dezimaltrennzeichen aufpassen. Eine Zahl mit Komma wird als Text interpretiert.
 

Anhänge

  • Unbenannt.PNG
    Unbenannt.PNG
    4,2 KB · Aufrufe: 3.293
  • Unbenannt2.PNG
    Unbenannt2.PNG
    1,7 KB · Aufrufe: 3.421
Danke dir!
Dies hat nun soweit auch funktioniert, auf der betreffenden Seite.

Nur komisch ist das es bei diesem Rechner funktioniert aber bei den anderen beiden nicht?
Das Prinzip ist aber das selbe von diesen Rechnern.

Hat jemand eine Idee?
:confused2:

mfg
 
Schon klar, dass du die IF Abfrage für jedes Textfeld brauchst?
Oder was meinst du mit den anderen Rechnern?
 
Ja, das ist mir schon klar habe ich dann auch gemacht.

Also der erste Rechner sieht so aus:

attachment.php


attachment.php


Hier habe ich eben alles zuerst eingegeben und nun habe ich vorher damit angefangen es einzeln zu testen deswegen steht auch gerade nur ein Feld drin.
Funktioniert aber leider nicht. :/

Nun beim zweiten Rechner steht alles drin, funktioniert aber trotzdem auch nicht, was ja eigentlich komisch ist, weil diese Felder nicht anders aufgebaut sind.

attachment.php


attachment.php


mfg
 

Anhänge

  • FP Blocks.PNG
    FP Blocks.PNG
    45,6 KB · Aufrufe: 3.411
  • Fuhrparl.PNG
    Fuhrparl.PNG
    6,3 KB · Aufrufe: 3.116
  • GB D.PNG
    GB D.PNG
    6,1 KB · Aufrufe: 3.070
  • GB.PNG
    GB.PNG
    56,3 KB · Aufrufe: 3.372
Es kann ja auch nicht gehen, wenn Berechnung vor der Abfrage kommt, ob in den Feldern ne gültige Zahl steht. --> ziehe mal die Blöcke in denen du alles ohne Eingabe auf 0 setzt vor die "Berechnungsblöcke"

Ich würde trotzdem alle Felder mit 0 vorbelegen und sobald man etwas in ein Feld eingibt die prüfung auf eine gültige Eingabe ausführen und ggfs. gleich wieder auf 0 setzen oder evtl ein Komma durch Punkt ersetzen.
In den Berechnungsblock würde ich nur die reine Berechnung legen. Wenn die Berechnung ausgeführt wird, sollte bereits sichergestellt sein, dass nur plausible Werte vorhanden sind.
 
Hallo,

ich probiere das jetzt gleich mal danke!

Aber kannst du mir das näher erklären wie ich das anstelle das ich sobald ich etwas eingebe die Null gelöscht wird?

Und meinst du nun, dass ich die "Nullbelegung" irgendwie extra machen soll, also nicht mit dem Button der berechnet?

mfg
 
Hab jetzt zwar gerade nicht den Appinventor zur Hand, aber gibts da für die Textbox nicht den Eventblock "lostfocus"?
Sobald der Anwender die Textbox verlässt kann dann sofort die Plausiblität geprüft werden und bei Bedarf auf 0 gesetzt werden.

Und ja, die 0-Vorbelegung gibst du direkt im Designer in den Textboxeigenschaften vor.
Wenn der Benutzer etwas anderes eingeben will muss er die 0 überschreiben.
 
Wie kann ich bei mit App Inventor, bei der Division, dass durch null teilen verhindern?
 
Du kannst nicht direkt verhindern, dass durch Null geteilt wird.
Du musst verhindern, dass der Divisor überhaupt Null werden kann.
Wo kommt der Wert des Divisors in deiner Berechung her? Aus einem Eingabefeld oder aus einer Variablen?
Eine Einfach Möglichkeit wäre eine Abprüfung mit "IF-THEN-ELSE"
 
  • Danke
Reaktionen: swa00

Ähnliche Themen

R
  • Robby1950
2
Antworten
23
Aufrufe
1.045
Robby1950
R
W
Antworten
2
Aufrufe
751
rene3006
R
5
Antworten
0
Aufrufe
1.173
586920
5
Zurück
Oben Unten