kotlin 如何正确地从私有类调用函数?

pkln4tw6  于 2023-05-29  发布在  Kotlin
关注(0)|答案(2)|浏览(150)

我有一个从另一个类调用函数的问题。

class MyActivity: AppCompatActivity()
{
   override fun onCreate(savedInstanceState: Bundle?)
   {...}
   fun myFunction()
   {...}
   private class myAdapter (...) : BaseAdapter(), ListAdapter {
      ...
      //some code
      ...
      myFunction(); // <- How should I call it properly?
   }
}

因为我得到了这个错误:java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.pm.ApplicationInfo android.content.Context.getApplicationInfo()' on a null object reference
我试着调用它MainActivity().myFunction(),但它也是一样。

xoefb8l8

xoefb8l81#

你的适配器应该是一个内部类。否则,它无法访问MainActivity的属性。应该是这样的:内部类myAdapter(...)
它可以解决你的问题,但不要实现这种方法,因为它违背了干净的代码和开闭原则。

pkbketx9

pkbketx92#

实际上,我找到我要找的了。我需要这样称呼它:
(context as MyActivity).myFunction()

相关问题