Ich habe dieses Stück Java-Code:
MaterialDialog builder = new MaterialDialog.Builder(MainActivity.this)
Ich möchte das MainActivity-Objekt in Kotlin abrufen. Die automatische Konvertierung bricht bei ab MainActivity.this
.
Rado
Ich habe dieses Stück Java-Code:
MaterialDialog builder = new MaterialDialog.Builder(MainActivity.this)
Ich möchte das MainActivity-Objekt in Kotlin abrufen. Die automatische Konvertierung bricht bei ab MainActivity.this
.
mfulton26
Sie können einen Verweis auf Ihre erhalten MainActivity
Objekt in Kotlin mit a qualifiziert this
. z.B:
class MyActivity : MainActivity() {
val builder = MaterialDialog.Builder([email protected])
}
Wie wäre es mit Fragment? Ich habe Context in Fragment (with @ActivityContext
Attribut), jetzt brauche ich Activity. Natürlich weiß ich Bescheid getActivity()
(Kotlin activity
) im Fragment, aber ist der zweite Weg in Ordnung oder da ich Kontext habe, ist es besser, ihn für den Zugriff auf die Aktivität zu verwenden?
– Dr.jacky
24. August 2018 um 15:37 Uhr
@Dr.jacky Ich denke, Sie können ‘(Kontext als? YourActivity)’ umwandeln. Jetzt können Sie auf Ihre Aktivitätsmethoden zugreifen
– jan4co
13. Februar 2019 um 19:47 Uhr
@siddarth-g Wenn Sie ein Problem mit ungelösten Referenzen haben, empfehle ich, eine neue Frage mit einem MCVE zu erstellen, um Hilfe zu erhalten.
– mfulton26
27. Dezember 2019 um 14:17 Uhr
@mfulton26 Es ist kein Kompilierungsproblem. [email protected] hat bei mir auch in einem anderen Projekt nicht funktioniert.
– Siddarth G
26. Juli 2020 um 8:40 Uhr
Die Bala
Versuchen Sie es stattdessen mit diesem Label
[email protected]
ungelöste Referenz
– Siddarth G
26. Dezember 2019 um 13:57 Uhr
Es kompiliert nicht
– IgorGanapolsky
3. Februar 2020 um 20:13 Uhr
@IgorGanapolsky ändern Sie den Aktivitätsnamen in Ihren Aktivitätsnamen -_-
– Grecha
15. April 2020 um 15:41 Uhr
@SiddarthG stelle sicher, dass deine innere Klasse mit “inner” markiert ist, das war mein Problem
– Glaskanone
2. April 2021 um 19:41 Uhr
Caner
Antwort ist: [email protected]ätsname
Zum Beispiel: Sie sollten es verwenden, wenn Sie “Context” in MainActivity.kt definieren möchten
var mContext:Context = [email protected]
Wieso den? Weil @ in der Kotlin-Sprache „von“ bedeutet, wie zum Beispiel:
val a = [email protected] // A's this
Wenn Sie weitere Informationen erhalten möchten, können Sie die Website von Kotlin Language besuchen:
Dieser Ausdruck in Kotlin
Wenn Sie Activity.this aus einer inneren Klasse aufrufen, müssen Sie put innere vor der Klasse
class MyActivity : MainActivity() {
// Call from class itself
val builder = MaterialDialog.Builder([email protected])
inner class Inner {
[email protected] // Call from the inner class
}
}
Shivam Yadav
So wie Sie es in Java tun, um den Kontext der Aktivität als MainActivtiy.this zu erhalten, erhalten Sie in Kotlin den Kontext als [email protected]
Fräulein Chanander Bong
getActivity()
Äquivalent ist [email protected]_name
im Fall von builder für materialDialog
materialDialog = MaterialDialog.Builder(this)
Vielleicht
this as MainActivity
?– Marc Plano-Lesay
12. Januar 2017 um 15:34 Uhr
Und wenn dieser Code nicht drin ist
MainActivity
dann welche Instanz vonMainActivity
ist es verbunden (und wie)? Als welche Instanz möchten Sie zugreifenthis
?– Hotkey
12. Januar 2017 um 15:34 Uhr
Der funktionierende Java-Code verweist nur auf die activity.this, also eine statische? Ich bin mir nicht sicher.
– Rado
12. Januar 2017 um 16:50 Uhr
Befindet sich der funktionierende Java-Code auch in einer völlig separaten Datei?
– Junge
12. Januar 2017 um 20:12 Uhr
Wie heißt dieser Code, wenn nicht in
MainActivity
aber trotzdem Gießenthis
zuMainActivity
? In einer Nebenklasse vielleicht?– Marc Plano-Lesay
13. Januar 2017 um 7:18 Uhr