android - 如何在Kotlin android中的扩展函数中访问同名的类成员

标签 android kotlin extension-function

我是 Android 版 kotlin 的新手。我想访问扩展函数中具有相同名称的类成员。 例如:

   var visibility = null //class level variable

    //EXTENSION FUNCTION
    fun ProgressBar.changeVisibleState(flag: Boolean) {
        if (flag)
            visibility = View.VISIBLE
        else
            visibility = View.INVISIBLE
    }

如何在 changeVisibleState 方法中访问可见性

最佳答案

带有qualified this this@Hello 您可以访问 Hello 的属性,而不是 ProgressBar 的属性。

class Bye {
    var visibility: Int = 0 //class level variable
}
class Hello {
    var visibility: Int = 0 //class level variable

    fun Bye.changeVisibleState(flag: Boolean) {
        //access Bye's prop
        visibility = if (flag) 1 else 2
        //access Hello's prop
        <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="47332f2e34070f222b2b2869312e342e252e2b2e333e" rel="noreferrer noopener nofollow">[email protected]</a> = 12
    }
}

关于android - 如何在Kotlin android中的扩展函数中访问同名的类成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46094087/

相关文章:

java - 如何在 Android 中创建文本字段以在 Flutter 应用程序中使用

javascript - 如何在 Typescript 中编写 Kotlinesque 扩展函数?

Kotlin:如何调用 super 的扩展函数?

android - 当 EditText 为空白且没有数据时,它的值是什么?

java - 对于输入类型为密码的 EditText,ImeOptions 按钮不会更改

kotlin - 如何缩短 MaterialTheme.colors.primary?

java - 如何以数字格式获取当前日期和时区

php - Android 上的 HTTP POST

generics - Kotlin,通用加法