Beiträge von nono124

    Zitat

    Ich habe rausgefunden, warum (auch bei mir) in Fragment2 nichts angezeigt wird.

    Weil im Source Code bei Fragment2 noch http://karaoke.... statt https://karaoke.... steht. (Wurde leider in der Zwischenzeit umgestellt)

    Wenn dein erstes Problem ist das du nichts im Recyclerview angezeigt bekommst .

    Solltest du das auch sagen, das hast du zb nicht, woher sollen wir das wissen.

    Wo genau im Moment du ein Problem ist. Eine genauer ausführliche Fehlerbeschreibung solltest du schon liefen.




    Dann zeige doch mal deinen Listener.



    diene beiden Links gehen nicht

    Ja dann solltest du vielleicht nochmal genau Beschreiben wo genau du hängst.


    Denn in den Code den du mal gepostet hast waren einige Fehler oder er war unvollständig.

    Ich sehe da zb nichts in dem Fragment 2 wo du deinen Titel und Interpret in dem Recyclerview auswählst.


    Dafür erstellt man normalerweise einen ItemOnKlickListener.

    Schaue dir doch mal ein paar Tutoriell zum Thema RecyclerView mit Itemklicklistener an.


    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.


    Defining item click listener for RecyclerView in Android | Codexpedia


    Android RecyclerView OnItemClickListener Example



    Im Übrigen ist es auch schlecht bzw. nicht schön und sinnvoll wenn du zwischen jeden Post. Mal nach ca zwei Wochen vorbei schaust.

    Das sieht für mich immer so aus als ob kein Interesse an der Antwort ist.

    Wie so sollte ich zu helfen versuchen, wenn es einige Wochen dauert bis du Interesse zeigst du willst doch was. Nicht ich.

    Ich habe keine Lust dir alles aus der Nase zu ziehen. Dann lasse ich es besser sein. Denke mal darüber nach.

    Hallo

    Ein Primary Constructor wird ja bei Kotlin automatisch erstellt.

    Wenn du da etwas außer der Variablen Definition hinzufügen willst benutzt du den Initializer Block (init).


    Für weitere Secondary Constructor benutzt du das codeword „constructor“


    Du kannst also in Kotlin keine Methode (Funktion bei Kotlin) mit dem Bezeichner „init“ erstellen.

    Denn das ist der Initializer Block. Bei Java wird die Install Methode oft so genannt.


    Kotlin Constructors and Initializers (With Examples)


    In deiner MainActivity hast du ein Constrainlayout. Du bindest also dein CusttomView auch da ein, aber hast keine Ankerpunkte gesetzt.

    In einem ConstrainLayout müssen immer mindestens zwei gestelzt werden.

    Oder du benutzt auch hier ein Linearlayout.


    Der Code von mir ist ja auch nur ein Beispiel mehr nicht .


    Dann zeige sage doch mal was du aus deinem zweiten Fragment in deinem Ersten brauchst. Was du übergeben oder sogar beobachten willst.



    In deinem zweiten Fragment bekomme ich schon einen Feller das das Json Array nicht richtig vom Server gelesen werden konnte.

    Das Recyclerview wir gar nicht angezeigt.





    Auch das mit dem RunOnUI in deinen ersten Fragment ist falsch.

    Wenn du im Fragment auf den UI willst dann etwa so


    Code
    getActivity().runOnUiThread(new Runnable() {
    @Override
    public void run() {
        
    //Zugriff auf Activity
      
    }


    die Methode ist sinnloss

    Hallo


    Das setzen eines Clicklistener auf ein ImageView ist doch nicht anders als auf einen Button.

    Das machst du in Code und nicht im XML.

    Zum Zoomen gibt es doch genug Tutorials und Libs in Netz.

    Zb das.

    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

    Hallo

    Bei Fragmenten lässt sich das alte OnClick Tag im XML Layout nicht nutzen.

    Du musst im Java, Kotlin Code einen OnClickListener erstellen.

    Mit ViewBinding in Kotlin etwa so.


    Code
    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
            super.onViewCreated(view, savedInstanceState)
            _binding?.btnShowDetails?.setOnClickListener {
    
                //hier dein code
            }

    Hallo

    Erstmal solltest du die liste (Array) die du dem Adapter mitgibst in einer Instanzvariablen halten.

    Damit du auch in der onActivityResult darauf zugreifen kannst und die Daten ändern kannst.

    Und auch hier musst du das neu zeichnen des Recyclerview anstoßen und nicht in dem Adapter. Denn zu dem Zeitpunkt wo du das im Adapter machst werden die Daten noch nicht zurück sein.


    Dazu bauschst du natürlich auch die Instanz von dem Adapter den du auch in einer Instanzvariablen halten solltest.

    Dann schaue dir das Einfache Beispiel Projekt an.

    Ich habe da ein ViewModel hinzugefügt. Und natürlich die Beobachter.

    Das sind drei Fragmente mit ViewPager in der Activity.



    Beim ViewPager ist es ja so das die Fragmente schon vorgeladen werden und nicht erst in dem Moment erstellt werden wo du den Tab drückst oder swipest. Beim Swipe sind ja beide Fragmente zu gleichen zeit halb sichtbar. Also müssen sie schon Existieren.


    Parameter überhabe mittels Bundle wie bei einen Intent der eine neue Activity startet geht hier also nicht. Denn die Fragment Methoden (onCreateView, onViewCreated ...) werden nicht beim Swipe nicht aufgerufen.


    Ja mit (Interfase, Callback, Singleton) und Gedöns ist das auch etwas zumachen. Aber wenn es nun mal die Möglichkeit Viewmodel gibst sollte man sie auch nutzen.


    ViewModel in Android Architecture Components - GeeksforGeeks
    A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and…
    www.geeksforgeeks.org

    Wenn dein AS akuell ist dann erstelle ein neues Projekt mit einer Empty Activity.

    Füge jetzt wenn das Projekt erstellt ist denn Quellcode und Layout hinzu.


    Nur die Gradel Version zu erhöhen reicht meistens nicht aus.

    Schaue dir das neue Projekt genau an was wo wie in den Kofig Datein stehen muss.

    Arguments (Parameter) von einem Fragment zum anderen mittels Bundle übergeben war gestern.


    Schaue dir das Thema ViewModel an. MVVM Pattern Android.


    Da du ja auch mit dem ViewPager arbeitest solltet du dir auch das Observer Pattern ansehen.




    Interessant wäre wo die textview ist die du seten willst?

    Ist sie im selben Fragment und Layout. Dann hole dir die ID in eine Instanzvariable dann kannsr du in deinem listener auch darauf zugreifen.

    Oder du suchst in dem listener die Id mit dem Context der Activity.


    Wenn es es in einem anderen Fragment sein soll. Wäre erstmal zu klären wie du deine Fragmente starrest..

    Fragmente tauscht startet man nicht mit einem Intent.


    Etweder mit dem Fragmentmanager und Transaction....

    Oder neuer mit dem Navcontroller.


    Zeige wie du das in der Activity machst.


    Ok neue woche kein Advent.


    Mir ist aber nicht richtig klar was du willst.

    Ich denke du willst das wenn auf einen listeneintrag geklickt wird eine Action ausgeführt wird.

    Du in einen listener kommst.


    Nur was willst du da in der Viewholder Klasse. Du willst einen Listerner der das recyclerview beobachtet. Ob ein Item von ihm geklickt wurde. Also muss der Listener auch auf dee Instanz von Recyclerview eingerichtet werden.


    Was willst du jetzt mit einem intent?

    Soll jetzt eine neue Activity gestartet werden wo du den Text anzeigen wilkst.

    Odee was?