如何在Kotlin中编写可在Android其他活动中使用的函数?

时间:2019-03-30 06:02:52

标签: android kotlin

这是我的MainActivity:

MainActivity.kt

class MainActivity : AppCompatActivity()  {

...

}

fun becomeClickable(v: Button){
    v.alpha = 1f
    v.isClickable = true
}

我想在其他活动中使用becomeClickable()。最佳做法是什么?

我以前在becomeClickable()中拥有private作为MainActivity函数,但是删除了private关键字并将该函数移到MainActivity之外。

3 个答案:

答案 0 :(得分:3)

另一个Kotlin扩展建议是将扩展功能添加到按钮而不是活动。这将使代码更具可读性,因为操作实际上是在按钮而不是活动上完成的。此外,如果您决定使用片段和自定义视图,则该功能将可用。您可以创建一个名为ButtonExtensions.kt的文件并添加以下内容

fun Button.becomeClickable() {
  alpha = 1f
  isClickable = true
}

现在,您只需编写buttonVariable.becomeClickable()

,即可在一个或多个活动中的任何地方简单地使用此扩展功能

希望这会有所帮助!

答案 1 :(得分:0)

使用随播对象

class CommonUtils  {
companion object {

fun becomeClickable(v: Button){
v.alpha = 1f
v.isClickable = true
   }
  }
}

在MainActivity中使用类似

CommmonUtils.becomeClickable(yourButton)

答案 2 :(得分:0)

科特琳Extensions在这里会很整洁。

只需在becomeClickable后面附加Activity.

fun Activity.becomeClickable(v: Button){
    v.alpha = 1f
    v.isClickable = true
}

现在所有活动均可使用。 :)