Bagaimana dengan Fragment? Saya telah memasukkan Konteks ke dalam Fragmen (dengan @ActivityContextatribut), sekarang saya membutuhkan Aktivitas. Tentu saja, saya tahu tentang getActivity()(Kotlin activity) di Fragmen, tetapi apakah cara kedua baik-baik saja atau karena saya memiliki Konteks, lebih baik menggunakannya untuk mengakses aktivitas?
Dr.jacky
@ Dr.jacky Saya pikir Anda dapat melakukan '(konteks sebagai? Aktivitas Anda)'. Sekarang Anda dapat mengakses metode aktivitas Anda
Gian Gomen
@ siddarth-g jika Anda mengalami masalah dengan referensi yang belum terselesaikan, saya sarankan untuk membuat pertanyaan baru dengan MCVE untuk mendapatkan bantuan.
mfulton26
@ mfulton26 ini bukan masalah kompilasi @ ActivityName ini tidak berfungsi untuk saya di proyek lain juga.
@IgorGanapolsky mengubah ActivityName menjadi nama Aktivitas Anda -_-
Grecha
1
Jika Anda memanggil Activity.this dari kelas dalam, Anda harus meletakkan batin sebelum kelas
classMyActivity:MainActivity(){// Call from class itself
val builder =MaterialDialog.Builder(this@MyActivity)
inner classInner{this@MyActivity// Call from the inner class }}
@ Jika Anda benar, kata kunci dalam diperlukan untuk mengakses Aktivitas di dalam kelas dalam
droidev
0
Seperti yang Anda lakukan di java untuk mendapatkan konteks aktivitas sebagai MainActivtiy.this, di kotlin Anda akan mendapatkan konteks seperti ini @ MainActivity.
apakah Anda menambahkan komentar ini untuk apa? Bisakah Anda memberikan beberapa referensi yang terselesaikan? Ini akan membantu kami, Sehingga kami akan mengikutinya dari waktu berikutnya
The Bala
0
getActivity()setara this@activity_name
dalam kasus pembangun untuk materialDialog
this as MainActivity
?MainActivity
, lalu ke manaMainActivity
ia terhubung (dan bagaimana)? Contoh mana yang ingin Anda aksesthis
?MainActivity
tetapi masih mentransmisikanthis
keMainActivity
? Mungkin di subclass?Jawaban:
Anda bisa mendapatkan referensi untuk Anda
MainActivity
objek dalam Kotlin dengan menggunakan berkualitasthis
. misalnya:sumber
@ActivityContext
atribut), sekarang saya membutuhkan Aktivitas. Tentu saja, saya tahu tentanggetActivity()
(Kotlinactivity
) di Fragmen, tetapi apakah cara kedua baik-baik saja atau karena saya memiliki Konteks, lebih baik menggunakannya untuk mengakses aktivitas?Coba label ini sebagai gantinya
sumber
Jika Anda memanggil Activity.this dari kelas dalam, Anda harus meletakkan batin sebelum kelas
sumber
Seperti yang Anda lakukan di java untuk mendapatkan konteks aktivitas sebagai MainActivtiy.this, di kotlin Anda akan mendapatkan konteks seperti ini @ MainActivity.
sumber
getActivity()
setarathis@activity_name
dalam kasus pembangun untuk materialDialogsumber
Anda bisa mendapatkan objek aktivitas seperti ini.
sumber
Di Kotlin, Anda harus menggunakan cara ini:
Misalnya: Anda harus menggunakannya jika Anda ingin mendefinisikan "Konteks" di MainActivity.kt
Mengapa? Karena dalam bahasa Kotlin @ memiliki arti "dari" seperti:
Jika Anda ingin mempelajari lebih lanjut, Anda dapat melihat situs Bahasa Kotlin: Ekspresi ini di Kotlin
@bayu_joo
sumber