Implementieren von onItemClick

  • Hallo Comunity,
    ich bin komplett neu in der Android-Development Sparte sowie Programmierung an sich.
    Nun wollte ich etwas an Android-Studio herumspielen. Ganz nach dem Motto "don't write twice" nahm ich mir eine Beispielapp - "MyApplication" - und schrieb sie etwas um. ^^


    Nun zum Thema:
    ich habe einen Drawer wie üblich auf der linken Displayseite, in welchen ich zwei verschiedene menu > group > Items habe, welche nun zu individuellen Activities verweisen sollen.
    Nun bin ich seiten Tagen am suchen nach Informationen wie ich das anstellen soll. Mir ist hierbei klar dass es Zahlreiche Seiten gibt die sich mit dem Thema beschäftigen. Dennoch bin ich ein blutiger Anfänger, mir fehlt einfach das nötige Grundwissen über die dem ganzen zugrundelegende Vorgehensweise und Syntax um diverse Konverstionen oder Anleitungen zu verstehen. Ich würde nicht Fragen wenn ich nicht weiter wüsste. :/


    Bitte hiermit um "noob-gerechten" Support. ;)


    Danke im Vorraus.
    mfG
    Nightshadelink

  • Hi, was meinst du ?
    willst du wissen wie man eine Activty schreibt oder nur wie du die aus einer anderen aufrufen kannst?


    Eine Activity wird mit einen "Intent" aufgerufen gestartet.
    in etwas so in der "onNavigationItemSelected" Methode


    Intent myIntent = new Intent(CurrentActivity.this, NextActivity.class);
    CurrentActivity.this.startActivity(myIntent);


    Vergesse nicht die neue Activity in das Manifest einzutragen.

  • Hi Jogimuc,
    danke für die zügige Antwort. :D


    Ja ich will eine Activity B aus Activity A aufrufen, jedoch nicht mit einem standard Button, wie es in zahlreichen Tutorials beschrieben ist mit onClick usw. .
    Sondern ich habe einen navigation drawer, sprich: ein Menü mit Items. Eines und später alle Items diesses Menü's sollen auf eine individuelle Activity verweisen.
    Bilder zu dem navigation drawer und die Activity 2 sind im Anhang um möglich Missverständnisse aus dem weg zu räumen.


    Hier ist mal noch der onNavigationItemSelected-Block aus meiner MainActivity.java

    Wie darf ich binnen der 23 Zeilen den Intent reinmurksen ? :P



    Dankeschön :D

  • Du musst dann zwischen deinen if's ein Intent machen und den danach aufrufen :D
    Es gibt viele Möglichkeiten ich weiß aber nicht welche die beste oder schönste ist



    Oder :


  • Hi hatte dir doch auch geschrieben das du das in die onNavigationItemSelected Methode ei fügen must. Das ist deine onClick Methode für den drawer. Natürlich eine Fall Unterscheidung nach den id s entweder mit if oder switch.
    Die Lösung mit den if ist bei einen automatisch erstellten App von AS vorhanden.

  • Hallo Jogimuc und Andy61,
    danke euch beiden für die Hilfe, es hat sich was getan.
    1. Jogimuc: Ja es sollte wohl i und nicht Intent heißen. Jedenfalls macht es so bessere Dinge ;)
    2. Andy61 die Variabelsetzung in der ersten If-Schleife verhinderte nun halt dass "if(i != null)" verstanden werden konnte. Wenn man kurzerhand aber die Zeile "i = new Intent(this, Stufeeins.class);" auch in der zweiten Schleife einfügt, beginnt da was zu leben.


    Bitte verbessert mich wenn ich damit eher Mist gebaut habe, dennoch freut es mich dass nun IRGENDWAS vorangeht! :D


    Hier der ausgebesserte Script-block:

    Danke vielmals schonmal dafür
    Grüße von vor den Alpen

  • Hi schön das wir helfen konten. Hier noch eine Variante ohne die nervigen if Anweisungen.
    Weniger zu Tippen und sieht Übersichtlicher aus.
    Verstehe nicht warum AS immer diesen Code mit den verschachtelten if Anweisungen erzeugt.


  • Hi zu Post Nr. 7



    Zitat

    2. Andy61 die Variabelsetzung in der ersten If-Schleife verhinderte nun halt dass "if(i != null)" verstanden werden konnte. Wenn man kurzerhand aber die Zeile "i = new Intent(this, Stufeeins.class);" auch in der zweiten Schleife einfügt, beginnt da was zu leben.


    Das ist so nicht Richtig.
    in Zeile 24 endet dein zweiter If-Block .Somit wird dein in Zeile 25 eingefügter Intent "i = new Intent(this, Stufeeins.class);" immer ausgeführt egal welches Item du Klickst. Das soll so bestimmt nicht sein. Versuche doch die Variante mit Switch Case Übersichtlicher und must nicht so aufpassen wann welcher If-Block zu ende ist. wichtig ist bei switch immer das "break" anzugeben sonst wird auch die nachvolgenen case: ausgefürt, maschmal ist dies aber auch erwünscht.
    default: wird ausgefürt wenn kein case: Übereinstimt.


    Hier noch mal dein etwas falscher Code aus Post Nr.7

  • Hi jogimuc,
    ja ganz nach learning by doing ist mir das dann auch aufgefallen, dass da jeder button macht was für einen gedacht war. :D
    die Anordnung der Buttons hab ich sowieso nun umgeworfen. Ich stehe nun aber vor einem neuen Rätsel, möchte hier keine Einzelunterricht draus machen, allerdings lade ich euch gern zur Diskusion auf meinen neun thread ein.
    Hier der Link: https://android-developers.de/…-a-in-activity-b-ablegen/#


    Dankeschön.

Jetzt mitmachen!

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