editText durch zwei Textwatcher untersuchen lassen

  • MainActivity



    NewRowTextWatcher tw


    Der Rest ist wie gehabt

  • jap, weil er die 1 noch für


    String part1 = parts[0];


    erkennt, aber halt nichts mehr hat für


    String part2 = parts[1];


    ich hab mal

    Java
    else{
                txt3.setText("17:45");
                String str1 = txt3.getText().toString();
                String str2 = txt4.getText().toString();


    gesetzt, und dann springt er immer von txt3.setText("17:45"); zurück zu


    Java
    if (txt1.getText().toString().equals("") &&
                    txt2.getText().toString().equals("") &&
                    txt3.getText().toString().equals("") &&
                    txt4.getText().toString().equals("") &&
                    txt5.getText().toString().equals("") &&
                    txt6.getText().toString().equals("") &&
                    txt7.getText().toString().equals(""))

    also in einer dauernden Schleife

  • ich meine, wenn ich im else dem txt3 einen Wert zuweise, dann geht er nicht zu


    Java
    if (hours>=0 && hours<=23)
                    {
                        return;
                    }
                    else
                    {
                        txt3.setText("");
                        Toast.makeText(ze.getApplicationContext(), "Wrong", Toast.LENGTH_LONG).show();


    wie es die if-Schleife eigentlich vorsieht, sondern springt immer wieder zurück zu

    Java
    if (txt1.getText().toString().equals("") &&
                    txt2.getText().toString().equals("") &&
                    txt3.getText().toString().equals("") &&
                    txt4.getText().toString().equals("") &&
                    txt5.getText().toString().equals("") &&
                    txt6.getText().toString().equals("") &&
                    txt7.getText().toString().equals(""))


    und von daraus wieder zu


    Java
    }
            else{
                txt3.setText("17:45");
                String str1 = txt3.getText().toString();
                String str2 = txt4.getText().toString();



    alles klar, danke schonmal vielmals

  • So habe nun den TextWatchermal getestet. Er funktioniert anders als du es dir Denkst .


    Er wird nach jeden Tastendruck aufgerufen. Nicht erst am ende der Eingabe.
    zB. du willst 21:12 eingeben, da wird schon nach der ersten "2" der Watcher das erste mal aufgerufen.


    Der Bezug zu den Zellen geht so auch nicht
    EditText txt3 = (EditText) ze.lastRow.getChildAt(3);
    String str = txt3.getText().toString();
    denn "str" ist in jeden durchlauf lehr.


    https://developer.android.com/…oid/text/TextWatcher.html


    Das eingegebener Zeichen ist in "editable" die Variable die der Callback Methode mitgegeben wird.


    Du müsstest auf das ende der Eingabe warten also zB. auf das drüchen der Enter Taste, mit dem der User normaler weiße seine Eingabe beendet.


    Erst jetzt hast du den vollen String in der übergebenen Variablen "editable" stehen und kannst ihn auswerten.


    Auf die Frage ob in der "str" string Variablen was drinn steht hast du mir leider keine Antwort gegeben.Habe den Watcher mal mit dem Debugger im Einzelschritt getestet.


    Du könntes jedes eingegene Zeichen testen ob es im richtigen Bereich ist.
    beim ersten durchlauf
    1. 0,1,2
    2. 0-9
    3. :
    4. 0-5
    5. 0-9


    PS. habe gerade gemerkt das das auch nicht so richtig ist. Müsstest immer den gesamten String testen. Denn sonst könnte auch 29 Uhr entstehen.
    1. 0-2
    2. 0-24
    3. :
    4. 0-5
    5. 0-9


    Der Aufruf aus der Main Klasse geht auch mit deiner Variante "txt3.addTextChangedListener(time24)"
    Leider hast du mir auch nicht bestätigt das die Klasse und somit der Code ausgeführt. Es gehen beite Varianten deine und meine.
    Wie ich schon sagte hatte ich nicht dein Projekt und war auch nicht an einen Rechner mit Android Studio . Da ist man auf die Aussagen des anderen angewiesen und wenn die nicht kommen läuft man manschmal in eine Sackgasse.


    Ps. Mich würde es trotzdem interessieren wer dir diese Aufgabe gegeben hat?


    Viele Grüße Jörg

  • Hey, sorry dass ich ne Zeit nicht geantwortet habe.


    Ich habs jetzt ein wenig anders hinbekommen, also ohne Textwatcher für die Uhrzeit, aber mit Textwatcher für die Differenz
    Das ganze steht soweit


    jetzt nur noch zwei Sachen
    1) Ich will, dass man ein Datum wählen kann und dann die Tabelle bekommt, die man an dem Tag eingetragen hat (also auf Auswahl des Datums soll die Tabelle die an diesem Tag erstellt wurde erscheinen)
    Alternativ reicht auch, wenn man z.B. freitags die Tabelle von Montags nochmal aufrufen könnte
    2) Möchte ich die Daten aus der Tabelle gerne speichern (lokal, oder gar in einer Datenbank)


    ich denke mal, 1) und 2) müssen zusammen, oder?


    Meinen Code lade ich heute Abend mal hoch


    MfG


    DerDon

  • du solltest dich mal mit Datenbanken beschäftigten. Zum Anfang wurde ich sagen nim die in Android vorhandene sqlite. Lernne auch die Grund Begriffe von SQL.


    Bei jeder Eingabe egal ob über eine edittext oder einen Dialog würde ich die Daten speichern. Oder erstmal in Variablen, Daten Struktur, Klasse.... Dies dann in die SQL Schreiben.
    http://www.programmierenlernen…qlite-datenbank-tutorial/


    http://www.programmierenlernenhq.de/android-tutorials/

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!