Beiträge von Terzel

    Also Add Row funktioniert soweit. Ich überlege, ob man die Default werte noch ändert. Default ist es Text, wenn ich es eingebe wird es zum double Wert und es rechnet richtig.

    Kommt sofort.
    Hier die Funktion zum Löschen der Row:

    Ich empfand statische Arrays nie so richtig praktisch und in dem Fall ungeeignet. Nach deiner Aussage benutze ich bereits eine Array Liste, also genau das was ich brauche. Aber bitte korrigiere mich wenn ich mich irre.


    Das erstellen der Rows funktioniert soweit. Nur kann ich keine mehr löschen und ich weiß nicht weshalb. Bastel da schon eine Weile rum.



    Davon abgesehen bin ich auch am überlegen, ob ich mich dem Speicherproblem langsam widme. Also werden beim schließen der App die Zeilen gespeichert? Im Moment nicht, aber später?


    Gruß und Dank

    Immer wenn ich krank bin, widme ich mich der programmierung :huh:
    Nun weiter im Thread, obwohl es mit dem ursprünglichen Thema wenig zu tun hat.


    Zur Erläuterung was am Ende entstehen soll:
    Es geht um Preiskalkulation.
    Pro Spalte soll folgendes abgebildet werden: Stück, Gewicht, kg Preis, Preis für das Stück, Button für eine Verlinkung an wen es verkauft wird.
    Am Ende eine Spalte mit der Gesamtsumme.


    Die Rows sind Variabel in der Anzahl. Also die Anzahl der Stücke ist nicht vorgegeben und wird mit "Neue Zeile" erweitert
    Die Preise pro Kilo werden sich für den Benutzer eigentlich nicht oder selten ändern. Deswegen währe es schon gut wenn, bei Neustart alles gespeichert wird.
    Außerdem sollte in z.B einer csv Datei die Verkäufe gespeichert werden. Der Button könnte den NAmen aus den Kontakten verknüpfen.


    Soweit bin ich jetzt:
    ich habe mit euer Hilfestellung nun die erste Row im grund funktionsfähig. Mit den Kommerstellen bin ich nun klar gekommen.
    Die Intension, des Array dachte ich, kann man für die Anzahl der Rows benutzen.


    So nun habe ich folgenden Code gefunden um Zeilen zuzufügen:


    Wie bastel ich da nun meinen Code rein.
    Ihrgendwie kann ich die Arrays mit "i" row für row benutzen. Nur mir fehlt das "wie füge ich was ein".
    Die Onclick View Funktion habe ich erstmal ursprünglich gelassen. Ich kann meinen Code aber auch nicht einfach so einfügen, wegen dem "i".

    Ich habe locale for Preview auf Deutsch gestellt und habe trotzdem die Ausgabe mit Punkt bekommen, wenn ich nicht das replace nehme.
    addResult.setText(sumstring[0].replace(".",","));Ich dachte das währe mit deiner Funktion nicht nötig.Um eine weitere Stringvara kommt man wohl nicht rum oder? Bzw ich habe wieder ein Array genommen. Das Zahlenformat sieht so genau richtig aus und funktioniert.

    Super danke
    .replace(",","."));
    und bei der Ausgabe:
    .replace(".",","));
    funktioniert



    Ich habe dann auch noch auf zwei Stellen mit
    sum[0] = Math.round(sum[0]*100)/100.00; gerundetBisl unschöhn sieht es aus wenn die Zahl nur eine Nachkommastelle hat, aber eigentlich ist es nicht so wichtig und funktioniert.Ich habe mir nun überlegt, wie man weiter macht. Auch die Arrays hatte ich dunkel als recht nützlich in Erinnerung. Ich möchte nähmlich eine Tabelle mit Variablen Zeilen erstellen.Also das was ich bisher gemacht habe, ist nur die erste Zeile.

    Also prinzipiel kenn ich schon die Datentypen. Aber mit Strings lässt es sich normalerweise nicht rechnen.
    Eingabe und ausgabe soll unbedingt eine Dezimalzahl mit Komma sein. Am besten noch auf 2 Stellen gerundet aber das ist erst einmal nebensächlich.
    Eigentlich lese ich mit der Funktion ein String aus und konvertiere ihn in eine Double Vara. Ist das richtig?
    Wenn ja, gibt es eventuell eine andere Möglichkeit ein Double Feld auszulesen? Oder gibt es eine Funktion die das umcastet?
    Wenn die Varas hin und her umgewandelt werden, muss die Vara ja auch wieder dementsprechend ausgegeben werden. Das ist dann mit Sicherheit auch wieder eine andere Funktion.


    Ich bin ja wohl nicht der erste der das Problemchen hat.


    Zu meinen Kentnissen habe ich vor Jahren einige Java Grundlagen kennen gelernt. Hauptsächlich habe ich mich dann aber eher mit der Webprogrammierung und Serverkonfiguration beschäftigt.
    Ich finde das Android Studio da schon eine Hilfe, da ich in der Syntax noch nicht so firm bin.
    Hier der Quellcode, ohne Syntaxfehler:

    Hallo,
    nach längerer Zeit widme ich mich wieder der Java Programmierung.
    Ich habe das Android Studio wiederendeckt und versuche nun eine App zu erstellen, die Werte Multipliziert. Später sollen noch weitere Funktionen folgen.
    Die Berechnung soll bereits bei der Eingabe geschehen. Soweit klappt das auch. Nur bei Berechnungen mit den Dezimalstellen habe ich so meine Problemchen.
    Die Berechnung findet einfach nicht statt. Da ich dadurch abstürze hatte, habe ich mit try und catch den Fehler abgefangen.


    Ich bin mir nicht sicher, ob der Fehler bei der Variablen Befüllung, Berechnung oder Ausgabe auftritt.
    Durch android:digits="0123456789,." bekomme ich eine Dezimalzahl mit Kommer eingegeben. Aber in der Main Activity fehlt scheinbar noch etwas.


    Hier der Code der XML:
    <EditText
    android:id="@+id/zahl1gew"
    android:layout_width="84dp"
    android:layout_height="wrap_content"
    android:digits="0123456789,."
    android:ems="10"
    android:inputType="numberDecimal" />


    <EditText
    android:id="@+id/zahl1kgpreis"
    android:layout_width="80dp"
    android:layout_height="wrap_content"
    android:digits="0123456789,."
    android:ems="10"
    android:inputType="numberDecimal" />...Und hier die Main Activity:final EditText firstNumber;
    final EditText secondNumber;
    final TextView addResult;


    final double[] num1 = new double[1];
    final double[] num2 = new double[1];
    final double[] sum = new double[1];



    firstNumber = (EditText)findViewById(R.id.zahl1gew);
    secondNumber = (EditText)findViewById(R.id.zahl1kgpreis);
    addResult = (TextView)findViewById(R.id.zahl1preis);num1[0] = Double.parseDouble(firstNumber.getText().toString());
    num2[0] = Double.parseDouble(secondNumber.getText().toString());
    sum[0] = num1[0] * num2[0];
    addResult.setText(Double.toString(sum[0]));