Collectives™ on Stack Overflow
Find centralized, trusted content and collaborate around the technologies you use most.
Learn more about Collectives
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
Learn more about Teams
I have this piece of Java code:
MaterialDialog builder = new MaterialDialog.Builder(MainActivity.this)
I want to get the MainActivity object in Kotlin. The automatic conversion breaks at MainActivity.this
.
–
–
–
You can get a reference to your MainActivity
object in Kotlin by using a qualified this
. e.g.:
class MyActivity : MainActivity() {
val builder = MaterialDialog.Builder(this@MyActivity)
–
–
–
–
Answer is: this@ActivityName
For example: You should use it if you would like to define "Context" in MainActivity.kt
var mContext:Context = this@MainActivity
Why? Because in Kotlin language @ has mean "of" such as:
val a = this@A // A's this
If you want to learn more information, you can look Kotlin Language website:
This Expression in Kotlin
If you are calling Activity.this from an inner class, you have to put inner before the class
class MyActivity : MainActivity() {
// Call from class itself
val builder = MaterialDialog.Builder(this@MyActivity)
inner class Inner {
this@MyActivity // Call from the inner class
–
–
You can get the object of activity like this.
class DemoActivity : BaseActivity() {
val builder = MaterialDialog.Builder(this@DemoActivity)
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.