Frage zu Kotlin source code

dgtKotlin

Mitglied
Hi,
arbeite mich gerade in Kotlin ein (unter Android Studio 3.6.3). Kann mir jemand erklären, was
Code:
{it: View!
beim Aufruf des onClickListener eines buttons macht? Ich habe bisher nichts dazu gefunden bei Google & Co.
Es geht darum, das ein bitmap per Knopfdruck gedreht werden soll. Hier mal der Code des onClickListeners:

Code:
flip_btn.setOnClickListener {it: View!
    if (isFront) {
        front_anim.setTarget(card_front)
        back_anim.setTarget(card_back)
        front_anim.start()
        back_anim.start()
        isFront = false
    } else {
        front_anim.setTarget(card_back)
        back_anim.setTarget(card_front)
        back_anim.start()
        front_anim.start()
        isFront = true
    }
        }

Das stammt aus dem online Tutorial "Flip Card Animation in Android Studio"
in YouTube von "doctor code"
Habe auch dort schon nachgefragt, aber leider bisher keine Antwort erhalten. Vielleicht kann mir hier ja weiter geholfen werden.
 

mihe7

Top Contributor
Zwar habe ich bislang noch nie etwas mit Kotlin gemacht, aber ich versuch es mal :)

Die Methode setOnClickListener erwartet einen View.OnClickListener, der die abstrakte Methode fun onClick(v: View!): Unit implementiert (s. https://developer.android.com/reference/kotlin/android/view/View.OnClickListener).

it steht in Kotlin implizit für den einzigen Parameter eines Lambdas.

Ich gehe mal davon aus, dass es auch ohne it : View! funktionieren würde und durch die Angabe explizit ein Lambda erstellt wird, das einen Parameter vom Typ View! erwartet. Das scheint mir ähnlich sinnvoll wie die @Override-Annotation in Java.
 

dgtKotlin

Mitglied
Ich gehe mal davon aus, dass es auch ohne it : View! funktionieren würde und durch die Angabe explizit ein Lambda erstellt wird, das einen Parameter vom Typ View! erwartet. Das scheint mir ähnlich sinnvoll wie die @Override-Annotation in Java.
Danke für Deine Antwort. Ich habe mir das mal angesehen und glaube ich auch verstanden. Komisch finde ich nur, dass ich in Android Studio (mittlerweile in der neuesten Version 4.0) einen Fehler bekomme. Habe ich mal als screen shot drangehängt. Der auskomentierte code funktioniert (habe ich aber auch nicht anders erwartet), aber mit eben diesem "it:" gibt es Probleme

it_View.jpg

Dies ist die Fehlermeldung:

it_View_error.jpg

Aber ich muss auch ganz ehrlich sagen, dass das alles nichts mit meinem Problem beim flip der Spielkarte zu tun haben kann. Denn wenn ich den auskommentierten code verwende, kann ich das Programm laufen lassen. Nur leider funktioniert es dann nicht so, wie es soll. Da muss ich wohl noch ein wenig Energie und Gehirnschmalz drauf verwenden.

Und ich muss noch mehr lernen über funktionale Programmierung und Lambadas - das aber später!
Vielen Dank
Andreas
 

dgtKotlin

Mitglied
Hallo,
nur der Vollständigkeit halber: Das Problem an sich ist gelöst. Es war ein dummer Fehler in der activity_main.xml, wo das ConstraintsLayout die gleiche id hatte wie eine der TextViews. Da dieser Name aber bei "front_anim.setTarget()" verwendet wurde, hat sich immer das gesamte ConstraintLayout auf Knopfdruck gedreht. Ich werde mich da jetzt noch mal genauer drum kümmern, denn ich verstehen noch nicht ganz genau, warum das ein Problem geben soll. Den meiner Meinung nach sind die id's ja auch auf den jeweiligen Typ bezogen und daher sollte es möglich sein, für z.B. einen Button die gleiche id zu vergeben wie für eine TextView. Auf jeden fall funktioniert die App jetzt wie sie soll, nachdem ich eindeutige Namen für die id's vegeben habe.

Noch eine wichtige Anmerkung:
Dies war in dem Sourcecode des Videos auf YouTube von "doctor code" nicht so und dort funktioniert die App daher auch. Es war eindeutig mein Fehler!
Vielen Dank
Andreas
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
C SOLID Single Responsibility Priciple Frage Softwareentwicklung 2
K Frage OOP Softwareentwicklung 8
A Frage zu testdriven developement Softwareentwicklung 1
H Regex Frage Softwareentwicklung 2
D Frage Schichtenarchitektur Softwareentwicklung 3
T Frage bezüglich MVC Softwareentwicklung 1
Shams Frage wegen guava-Eventbus. Softwareentwicklung 0
B Frage zu Schnittstellen (lose Kopplung) Softwareentwicklung 5
H Frage zur Stanford NLP-API Softwareentwicklung 2
E Frage zu Dekorator-Pattern Softwareentwicklung 2
O Frage zu Regulärer Ausdruck Softwareentwicklung 3
H WEKA - Frage zu Methode in Evaluation Softwareentwicklung 2
S Frage zu Zusicherungen: Softwareentwicklung 12
D Frage zu String Algorithmen / String Metric Softwareentwicklung 7
Airwolf89 Theoretische Frage - In Java Java-Programme schreiben Softwareentwicklung 5
D Frage zur Objektorientierung mit Interfaces Softwareentwicklung 9
B Theoretische Informatik Frage zu Formalismus RegExp Softwareentwicklung 12
Wepster LGPL, MPL Frage Softwareentwicklung 3
D Frage zur Benutzeroberflächenprogrammierung Softwareentwicklung 8
D Frage zu Klassendiagramm und Konstruktor (UML) Softwareentwicklung 3
M [OOP] Frage zu Methode-Namen / Funktionsweise Softwareentwicklung 9
P Frage zu Processing Softwareentwicklung 9
S Regex Frage Softwareentwicklung 4
D Frage zu meiner Vorgehensweise in einem Projekt Softwareentwicklung 5
A Frage zu GPL Softwareentwicklung 3
K Frage zu UML Aktivitätsdiagramm Softwareentwicklung 3
J Frage zu Lizenzrechten Softwareentwicklung 5
B bash frage Softwareentwicklung 6
F allgemeine exe frage Softwareentwicklung 10
G Frage zur LGPL? Softwareentwicklung 5
0x7F800000 "Wozu ist denn CSS / CSS2 gut" Dumme Frage? Softwareentwicklung 9
G Frage zur UML Softwareentwicklung 2
B Ajax Frage Softwareentwicklung 2
J Frage zu Relation Softwareentwicklung 2
W Frage zu a)Innere Klassen und b)OO Design Softwareentwicklung 13
G MVC Frage Softwareentwicklung 4
P Frage zu Prolog! Softwareentwicklung 7
E Frage zu Excel und Filtern Softwareentwicklung 4
Y OpenGL/C Frage - externe Funktionen Softwareentwicklung 5
G C# Frage Softwareentwicklung 12
T SQL, Feld mehrmals abfragen, IN Frage Softwareentwicklung 3
C Grundsätzliche Frage zur OOP bzw. zum MVC Softwareentwicklung 5
RaoulDuke Frage zu Datenmodel / Zugriff Softwareentwicklung 5
J Frage zu C Softwareentwicklung 2
H Frage ueber Prototype Pattern? Softwareentwicklung 2
L Noch 'ne Perl-Frage. Kehre dann auch reumütig zu Java zurück Softwareentwicklung 10
S Design-Frage: Wie viele Fassaden? Softwareentwicklung 4
J Frage zu MVC, Swing, Gui Softwareentwicklung 3
L Frage zu Beziehungen zwischen Klassen und UML Softwareentwicklung 10
T Frage zu Mysql Softwareentwicklung 3
C Mysql-Frage(Problem mit nicht durchgeführten Zugriff) Softwareentwicklung 5
O Kotlin und GUI Softwareentwicklung 1
ruutaiokwu reverse engineering tool gesucht: source code -> uml klassendiagramm Softwareentwicklung 5
O Wie analysiert ihr Source Code / Tipps zum Verstehen von fremdem Code Softwareentwicklung 4
W Mitwirken an Open Source Projekten Softwareentwicklung 7
S Subversion und Source Folder Problem. Softwareentwicklung 6
S Open Source Software für UML Softwareentwicklung 8

Ähnliche Java Themen

Neue Themen


Oben