从Kotlin中的其他类调用函数吗?

时间:2020-03-05 23:20:24

标签: android kotlin

我试图在 Android 的Kotlin的单独类中调用一个简单函数:

public class TestOfAClass: AppCompatActivity()  {
      public fun ThisIsATest(thisTest: String) {
           print(thisTest)
    }
}

但在我有以下情况时进来

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        button.setOnClickListener {
            ThisIsATest("Hello World")
        }
    }
}

我得到Unresolved reference: ThisIsaTest

那我怎么从另一个类中调用一个函数呢?

1 个答案:

答案 0 :(得分:0)

您要调用的方法是一个实例方法,最简单的答案是:

class MainActivity : AppCompatActivity() {

….
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        button.setOnClickListener {
            TestOfAClass().ThisIsATest("Hello World")
        }
    ))

更好的答案是将您的方法重命名为驼峰式大小写:

     public fun thisIsATest(thisTest: String) {
           print(thisTest)
    }
}

那样,您就知道它是方法而不是类。


但是,如果您要在两个活动之间进行通信,则这不是怎么做。还有其他几种选择,一种是使用startActivityForResult

https://developer.android.com/training/basics/intents/result

How to manage startActivityForResult on Android?