Hallo aus Köln

  • Hallo Zusammen, :thumbup:
    ich möchte mich auch einmal kurz vorstellen.
    Ich bin 70 Jahre alt, ich habe bis jetzt recht und schlecht Mit App Inventor programmiert.
    Die App die ich in App Inventor geschrieben habe und auch im Google Play veröffentlicht ist,
    möchte um schreiben auf Android Studio, ich hoffe das ich dabei von euch Hilfe bekomme.


    Ich bin für einen respektvolles Miteinander und
    das man ihr im Forum auch bereit ist noch so nervige und wiederholende Frage geduldig zu beantworten.


    Ich möchte noch hinzufügen, das ich Anfänger in Android Studio bin.


    Beste Grüße
    Robby :)

  • Hallo Robby,


    Respekt mit 70 noch Android Studio lernen, das klingt auf jeden Fall aufregend.
    Was für eine App möchtest du denn programmieren, bzw. was kann deine jetzige App und was soll sie in Zukunft so leisten?


    Viele Grüße
    Phil

  • Hallo killphil75,


    meine jetzige App ist in App Inventor geschrieben und ich möchte diese alserstes durch den Android Editor ersetzen.
    Bei der jetzigen App, gibt es keinen Privaten Bereich wo die Daten abgelegtwerden und das stört mich.
    Hier mein Badminton Zähler.


    https://play.google.com/store/….ai_info.BatmintonZaehler


    Kannst sie dir ja mal anschauen und mir schreiben was Du da von hältst.

  • Hallo killphil75,
    ich habe noch eine App im Store, den Fotospickzettel
    Diese App habe ich schon mit dem Android Editor geschrieben.
    Um zu sehen was man so alles mit dem Editor machen kann,
    bevor ich anfange die Badminton App neu im Android Editor zu schreiben.
    Zu dieser App brauche ich auch eure Hilfe.
    Ich habe 2 Spinner in der App die getrennt voneinander laufen.
    Ich möchte wen ich den 1. Spinner starte (also Auswähle) dass mir die aktuelle Position des 1 und des 2.Spinner anzeigt wird, oder auch umgekehrt
    Starte ich den 2. Spinner das die Jetzige Position des 1.Spinner und des 2. Spinner angezeigt wird.
    Ich habe hier ein Beispiel, aber das funktioniert nicht so richtig, es werden nicht die Aktuelle Position der beiden Spinner angezeigt.
    Was mach ich falsch.

  • Hallo zu deinem Problem mit dem spinnern. In dem listner bekommst du immer nur einen spinner und nicht beide. In dem parent ist immer nur der spinner auf den du geclickt hast.
    Es macht keinen Sinn die view beiden spinner Variablen zuzuweisen.
    Du must schon prüfen wer von den beiden Spinnern den Listener aufruft.


    In vorallen ist die Variable nicht ein Bezug auf die View und somit auf die id sondern ein Bezug auf den Adapter. Also auf das Array.

  • Im Moment leider nicht , coden ist am Handy schlecht.


    In der parent Variablen kommt immer der Adapter, in der v die View also der Spinner der den Listener auslöst, in der position die Position auf was du geklickt hast.


    Also deine Id ist wenn in der v Variablen und nicht in den parent.


    Und du hast immer nur eine View nicht beide.


    Wer den Listener auslöst prüft du genau so wie bei einen Clicklistener Button. Auf die richtige ID.


    Eigentlich müsste mit der Variablen id auch die ID des Listeners bekommen.

  • So sollte es gehen.





    Zum dem Teil mit den Speicherbereichen.



    Erstens brauchst du Permissions um auf den externen Speicher zuzugreifen.
    Bis API 22 Reichte die im Manifest zu setzen.



    Ab API 23 musst du auch den User nach der Permission fragen.
    https://developer.android.com/…ng/permissions/requesting



    Ab API 28 kannst du auch nur noch mit Storage Access Framework (SAF). auf die Externe oder Interne SD Karte einen Vollzugriff erhalten.



    Ab API 29 kommt auch noch Sroped Storage hinzu.



    https://developer.android.com/preview/privacy/storage

  • Zitat


    ich habe noch eine App im Store, den Fotospickzettel
    Diese App habe ich schon mit dem Android Editor geschrieben.


    Das glaube ich dir nicht ganz die ist bestimmt mit dem App Baukasten gemacht.
    Der Aufbau der APK , Layouts schauen mir nicht nach Nativen SDK mit Android Studio aus.
    Habe mir die APK von Google Play angesehen.
    Wie kommen für so eine einfache App 21MB zustande? doch nur duch eine Externe Lib.


    Finde auch hier das Querformat unpassend. Denn wenn ich mit meiner Kamera unterwegs bin und etwas nach schauen will, will ich mein Handy nicht erst rum drehen.


    Wenn du das im Studio mit Java gemacht hättest würdest du dicht die Frage nach den Spinnern stellen.

  • Hallo wenn das stimmt wüsstest du auch wie ein spinner arbeitet.
    Da wirst du zumindestens einzelne Listener haben für jeden spinner einen.


    Für deine layouts hast du aber bestimmt eine Lib benutzt. Würden sonst anders aussehen und auch nicht so viele nicht benutzte liberys mit im Code
    sein.


    Aber zum Thema was machen den nun deine spinner?

  • Hallo jogimuc,
    in der Jetzigen App habe ich einen Spinner der aus einer Array Daten holt und dann anzeigt, zum Beispiel Sonnenuntergang, Blende, Verschlusszeit und ISO.
    Ich möchte nun die Anzeige der ISO durch einen 2 Spinner verändern, ohne dass ich einen Button benutze um alles zu aktualisieren.
    Darum brauche ich die Positionen der Spinner 1 und 2
    So ist mein Gedanke?
    Ich hoffe das Du meinen Gedankengang folgen kannst?

  • Lib soll eine Bibliothek
    zb so was wie Retrofit. Oder andere oberflächen um das Design Layouts zu entwickeln.



    Was genau geht denn nicht? Wird denn einer der beiden if Zweige aufgerufen?
    Kommst du überhaupt in den if Block? . Hast du das mit den Debugger geprüft?


    Im übrigen finde ich es nicht sinnvoll zwei toast hindereinander zu machen da wird oft einer verschluckt.
    Wenn du wissen willst ob er in den if Block verzweigt benutze ein Log und prüfe das in der logcat.



    Log.d("Test", "Deine Wahl :" + countries[position]) ";

  • Hallo habe es jetzt mal getestet und nachgelesen.


    Die View die du bekommst ist nicht die View von den Spinner sondern die View von den Item auf das du klickst.


    Eigentlich hätte dein erster Code gehen müssen tut er auch bei mir.


    Es ist auch so das der Listener auch beim App Start für jeden Spinner einmal aufgerufen wird.


    Somit werden beim Start der App auch die beiden Toaste am Ende des Listeners zweimal aus gegeben.


    Da der Listner beim Start der App zweimal durchlaufen wird. Natürlich stimmt die Ausgabe erst beim letzten durchlauf. Wenn die App gestartet ist sollte es passen.


    Er wird aber auch nur aufgerufen wen du etwas anderes anklickst als was gerade in den Spinner ausgewählt ist.Ich sehe hier kein Problem.


    Das musst du schon genauer beschreiben was du da für ein Problem siehst.




    PS.



    In deiner app hast du


    Vier Spinner die ersten drei setzt du auf den Default Listener „this“ den den das interface vorschreibt. Wenn do this angibst wird immer der benutzt.
    "spinner.setOnItemSelectedListener(this);"


    außer für den zweiten Spinner setzt du aber auch noch einen eignen Listener für die anderen drei.
    Somit weißt du in der Methode wer den Listener ausgelöst hat.
    Aber der default Listener wird auch von den anderen Spinnern aufgerufen.


    Spinner vier hat nur seinen eigenen Listener.
    1 und 3 haben zwei den default und den eigenen. Wiso das?


    Ja du hast den Code in dem default listener auf Kommentar also macht er nichts. Aber dein zweiter Spinner nach dadurch auch nichts.



    Also lösche den default bei 1, 2 und 3, und erstelle für den zweiten auch einen eigenen Listener.


    Zwei Listener auf eine Variable ist falsch führt immer zu Probleme.






    in Java bitte Klassen Groß und Varaiablen klein schreiben.

  • Hallo jagimuc, 8)
    ich habe einfach drauflos geschrieben und nach und nach die Module eingesetzt.
    Im Grunde weiß ich nicht, was da im Inneren abläuft, ich mache das erst seit
    4 Monaten und hole mir alles aus dem Internet, so wie ich es brauche.
    learning bei Google.
    Danke für die vielen Tipps, das muss ich erstmal verdauen und mir durch den Kopf gehen lassen,
    Du weißt ich bin ein Blutiger Anfänger.
    Eine Frage, kannst Du meinen Code aus der App Lesen und wen Ja wie?

  • Ja man kann denn Bytecode von java zum Teil decompiliren. Es gibt sogar online Webseiten dafür. Nur ist es nicht der echte Quellcode und er ist auch nicht lauffähig. Wenn dann nur mit viel Aufwand.


    Deshalb sollte man pw auch nie in lesbarer form im Code speichen. Nur als Tipp zu verstehen.

  • Beschreibe doch mal wo das Problem bei deinen zuerst gepostet Code ist.



    Zitat

    Ich möchte nun die Anzeige der ISO durch einen 2 Spinner verändern, ohne dass ich einen Button benutze um alles zu aktualisieren.

    Was genau willst du? Willst du das sich die items in dem zweiten ändern. Also je nachdem auf welches icon im ersten gekickt wird sollen sich die Element im zweiten ändern?

Jetzt mitmachen!

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