Hallo aus Köln

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Hallo aus Köln

      Hallo Zusammen, :thumbsup:
      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 :)
      Beste Grüße
      Robby 8o

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Robby ()

    • 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.

      play.google.com/store/apps/det….ai_info.BatmintonZaehler

      Kannst sie dir ja mal anschauen und mir schreiben was Du da von hältst.
      Beste Grüße
      Robby 8o

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Robby ()

    • 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.

      Quellcode

      1. public class MainActivity extends Activity implements AdapterView.OnItemSelectedListener {
      2. TextView selection1;
      3. TextView selection2;
      4. String[] countries = {"Amerika","Argentina","Brazil"};
      5. String[] city = {"London","Paris","Buenos Aires"};
      6. int wahlPosCountry =0, wahlPosCity = 0;
      7. @Override
      8. public void onCreate(Bundle savedInstanceState) {
      9. super.onCreate(savedInstanceState);
      10. setContentView(R.layout.activity_main);
      11. Spinner spin1 = (Spinner) findViewById(R.id.spinner1);
      12. ArrayAdapter<String> aa = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, countries);
      13. aa.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
      14. spin1.setAdapter(aa);
      15. spin1.setOnItemSelectedListener(this);
      16. Spinner spin2 = (Spinner) findViewById(R.id.spinner2);
      17. ArrayAdapter<String> bb = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, city);
      18. bb.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
      19. spin2.setAdapter(bb);
      20. spin2.setOnItemSelectedListener(this);
      21. }
      22. public void onItemSelected(AdapterView<?> parent, View v, int position, long id ){
      23. Spinner spin1 = (Spinner)parent;
      24. Spinner spin2 = (Spinner)parent;
      25. if(spin1.getId() == R.id.spinner1)
      26. {
      27. Toast.makeText(this, "Deine Wahl :" + countries[position],Toast.LENGTH_SHORT).show();
      28. wahlPosCountry = position;
      29. }
      30. if(spin2.getId() == R.id.spinner2)
      31. {
      32. Toast.makeText(this, "Deine Wahl :" + city[position],Toast.LENGTH_SHORT).show();
      33. wahlPosCity = position;
      34. }
      35. Toast.makeText(this,countries[position]+" ist Pos. "+ wahlPosCountry,Toast.LENGTH_SHORT).show();
      36. Toast.makeText(this,city[position]+" ist Pos. "+ wahlPosCity,Toast.LENGTH_SHORT).show();
      37. }
      38. public void onNothingSelected(AdapterView<?> parent){
      39. }
      40. }
      Alles anzeigen
      Beste Grüße
      Robby 8o
    • 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.

      Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von nono124 ()

    • Quellcode

      1. public void onItemSelected(AdapterView<?> parent, View v, int position, long id ){
      2. if(v.getId() == R.id.spinner1)
      3. {
      4. Toast.makeText(this, "Deine Wahl :" + countries[position],Toast.LENGTH_SHORT).show();
      5. wahlPosCountry = position;
      6. }
      7. if(v.getId() == R.id.spinner2)
      8. {
      9. Toast.makeText(this, "Deine Wahl :" + city[position],Toast.LENGTH_SHORT).show();
      10. wahlPosCity = position;
      11. }
      12. Toast.makeText(this,countries[position]+" ist Pos. "+ wahlPosCountry,Toast.LENGTH_SHORT).show();
      13. Toast.makeText(this,city[position]+" ist Pos. "+ wahlPosCity,Toast.LENGTH_SHORT).show();
      14. }
      Alles anzeigen
      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.
      developer.android.com/training/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.


      developer.android.com/preview/privacy/storage

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von nono124 ()


    • 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?

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von nono124 ()

    • 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?
      Beste Grüße
      Robby 8o
    • 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]) ";

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von nono124 ()

    • 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.

      Dieser Beitrag wurde bereits 6 mal editiert, zuletzt von nono124 ()

    • 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?
      Beste Grüße
      Robby 8o
    • Beschreibe doch mal wo das Problem bei deinen zuerst gepostet Code ist.


      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?

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von nono124 ()